1、报错预览
Traceback (most recent call last):
File "/www/wwwroot/python/bot-one/main.py", line 5, in <module>
import requests
File "/www/wwwroot/python/bot-one/343ae0eb0d491a10a1a00c0621b03ed0_venv/lib/python3.9/site-packages/requests/__init__.py", line 43, in <module>
import urllib3
File "/www/wwwroot/python/bot-one/343ae0eb0d491a10a1a00c0621b03ed0_venv/lib/python3.9/site-packages/urllib3/__init__.py", line 41, in <module>
raise ImportError(
ImportError: urllib3 v2.0 only supports OpenSSL 1.1.1+, currently the 'ssl' module is compiled with 'OpenSSL 1.0.2k-fips 26 Jan 2017'. See: https://github.com/urllib3/urllib3/issues/2168
2、原因分析
项目中使用了requests
而requests
使用了urllib3
, urllib3 v2.0
要求OpenSSL 1.1.1+
,而我的系统版本是OpenSSL 1.0.2k-fips 26 Jan 2017
,那么给他进行升级就行。
3、解决方法
方案一:
根据报错的提示,找到对应的文档,由于我的系统是centos7,所以版本估计是1.0.2,可以使用openssl version
进行查看,然后确定是1.0.2。
如果centos8的openssl默认是1.1.1+的话,那么可以升级系统到centos8,即可解决这个问题,由于我的系统部署的有其他的东西,没有贸然升级,选择了第二种方案。
方案二:
升级openssl版本,按照下面步骤,一顿输出,就会有结果
1、查看版本
openssl version
ssh -V
2、下载版本
wget --no-check-certificate https://www.openssl.org/source/openssl-1.1.1t.tar.gz
3、解压
tar -zxf openssl-1.1.1t.tar.gz
4、编译安装
cd openssl-1.1.1t
./config -Wl,-rpath=/usr/lib64 --prefix=/usr/local/openssl --openssldir=/usr/local/openssl --libdir=/usr/lib64
make -j 4 && make install
5、替换
mv /usr/bin/openssl /usr/bin/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
6、验证结果
openssl version
如图所示,则升级成功
4、宝塔操作
openssl升级后,在宝塔中进行如下操作
1、删除项目
2、删除python版本
3、安装python版本
安装之前的版本就行
4、创建项目
创建你删除的项目
5、重启服务器&面板