在搭建web服务器时,需要使用Gunicorn 模块,可在使用Gunicorn 启动时,报错No module named ‘_ssl‘,历经周折解决了这个问题,解决过程记录如下:
说明1:Gunicorn 是一个unix上被广泛使用的高性能的Python WSGI UNIX HTTP Server,和大多数的Web框架兼容,并具有实现简单,轻量级,高性能等特点。
使用gunicorn启动应用程序的好处是,它可以处理大量的并发连接,,并且其使用的是预派生子进程的方式,这意味着它能够更好地利用多核CPU。
步骤一:升级ssl。
通过命令:openssl version查看centos上默openssl版本是1.0,版本过低,导致失败了。升级过程如下
1.分别执行以下命令,下载安装包并编译安装
cd /usr/local
wget https://www.openssl.org/source/openssl-1.1.1d.tar.gz
tar -zxvf openssl-1.1.1d.tar.gz
cd openssl-1.1.1d
./config --prefix=/usr/local/openssl
make && make install
说明:./config --prefix=/usr/local/openssl 此命令,可以直接./config ,这样默认安装路径就是/usr/local 。建议增加--prefix=/usr/local/openssl ,表示安装路径是在/usr/local/openssl
2.修改链接文件
备份原有链接
mv /usr/bin/openssl /usr/bin/openssl.bak
创建软链接
ln -sf /usr/local/openssl/bin/openssl /usr/bin/openssl
3.添加路径至ld.so.conf
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
注意:lib路径最后不带“/”,否则报错
4.设置生效
ldconfig -v
5.这样就安装成功了,可以通过命令 openssl version查看,会显示:
OpenSSL 1.1.1d 10 Sep 2019
步骤二:重新编译安装python。
方法1(强烈推荐):
1.执行命令清除临时文件:make clean
2.进行配置: ./configure --prefix=/usr/python3 --with-openssl=/usr/local/openssl --with-openssl-rpath=auto
有2个地方注意: --prefix=/usr/python3 中=后面是python安装路径。--with-openssl=/usr/local/openssl 中=后面是openssl 安装路径。
3.执行命令:make 。此时需要注意是否有报错,有报错就是上一步 ./configure配置有问题。
4.执行命令:make install 进行安装。
5.安装后,执行python3 后,通过import ssl没有报错,就证明openssl安装成功了。
方法2(仅做记录,未验证):
1.进入python安装包解压后的目录,打开Modules/Setup文件,
找到段代码大概在文件的57%左右的位置,把下面5句代码的注释取消,还有两个地方的路径要修改。一是OPENSSL后面的路径改成你自己的openssl目录,我的是/urs/local/openssl,这里原本是OPENSSL=/path/to/openssl/directory。二是蓝色框里面的要改成lib64,其它的不要动,保存。蓝色框这里的路径,如果不确定的话,可以打开你的openssl目录查看,是lib还是lib64.
说明:Python3的不同版本中,Setup 文件名可能不同,打开后红色框框部分的内容也会不同。
2. 执行命令清除临时文件:make clean
3.执行命令:
./configure --prefix=/usr/python3
make
make install
4.安装后,执行python3 后,通过import ssl没有报错,就证明openssl安装成功了。
参考:https://blog.csdn.net/leonnew/article/details/130886213
- Python3 centos Python module namedpython3 centos python module importerror python module named modulenotfounderror python3 python module python3 ubuntu python module python3 tkinter python module python import module named centos7 python3 centos python python3 centos python python3 centos python numpy mysqlclient python3 centos python