解决pip install时ssl报错的问题

这里以python3为例,python2的解决方案应该也与此类似。

问题

centos服务器,pip install时,安装失败,同时有报错信息:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

此时进入到python,尝试import ssl,同样也会出现错误。

原因

这是因为在安装python时没有配置ssl选项,或者是配置了ssl后编译时有报错,但是最后仍然编译出了能正常运行的python执行程序。

解决方法

重新安装python。

步骤一 确认本地openssl版本

因为python配置ssl,要求是openssl1.1.1及以上的版本,首先要确认本地openssl版本是否符合,执行命令

openssl version

如果版本是1.1.1及以上,那就直接进入步骤二。否则需要重新安装openssl。
openssl 官方下载页面:https://www.openssl.org/source/
这里下载的是当前最新的openssl-1.1.1q。

wget https://www.openssl.org/source/openssl-1.1.1q.tar.gz
tar zxvf openssl-1.1.1q.tar.gz
mkdir /usr/local/openssl
cd openssl-1.1.1q
./config --prefix=/usr/local/openssl
make && make install

有的教程里也会替换/usr/bin/下的openssl,但是这里只是给python编译使用,可以不替换,只要在便宜python时制定openssl的路径即可。安装完后用命令确认一下是否版本为1.1.1

/usr/local/openssl/bin/openssl version
步骤二 编译安装python

python官方下载页面 : https://www.python.org/downloads/

wget https://www.python.org/ftp/python/3.10.7/Python-3.10.7.tgz
tar zxvf Python-3.10.7.tgz
cd Python-3.10.7
mkdir /usr/local/python3
./configure --prefix=/usr/local/python3 --with-openssl=/usr/local/openssl
make && make install
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

这里也可以单独执行make,看看编译结果里是否有报错,如果有ssl相关报错,说明还是ssl模块编译还是有问题,可以查看编译结果里的原因说明。
之后再执行pip3 install就不会报错了。

参考:
解决pip is configured with locations that require TLS/SSL, however the ssl module in Python is not

你可能感兴趣的:(python,ssl,pip,python)