kakajiejie

python无法import ssl和pip is configured with locations that require TLS/SSL问题解决方法

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

问题原因:openssl版本过低或者Python编译安装时需要加上参数--with-openssl=其目录

#1.下载源码包
tar xf openssl-1.1.1l.tar.gz
cd openssl-1.1.1l/
#2.编译安装
./config --prefix=/usr/local/openssl
make && make install
# 3.备份原配置
mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl/ /usr/include/openssl.bak
# 4.新版配置
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
# 5.修改系统配置
## 写入openssl库文件的搜索路径
echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
## 使修改后的/etc/ld.so.conf生效
ldconfig -v
# 6.查看openssl版本
openssl version

2. 重新编译安装 python,添加 --with-openssl=/usr/local/openssl 参数

cd /opt/Python-3.10.0/

### 可选 make clean && make distclean ,清除之前编译的可执行文件及配置文件 && 清除所有生成的文件,同时也将configure生成的文件全部删除掉,包括Makefile

./configure --prefix=/usr/local/Python-3.10.0/ --with-openssl=/usr/local/openssl/

make && make instal

 

##########另外一种方案##############

解压openssl源代码,并安装

tar -zxvf openssl-1.0.2j.tar.gz
./config --prefix=$HOME/openssl shared zlib
make && make install

注意!openssl配置是用config,而不是configure,另外openssl编译安装依赖zlib动态库,所以一定要shared zlib。

3、设置环境变量LD_LIBRARY_PATH

echo "export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$HOME/openssl/lib"  $HOME/.bash_profile
source $HOME/.bash_profile

这一步一定要有!!LD_LIBRARY_PATH环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。当执行函数动态链接.so时,如果此文件不在缺省目录下‘/lib' and ‘/usr/lib',那么就需要指定环境变量LD_LIBRARY_PATH

posted on 2022-07-22 17:28  kakajiejie  阅读(261)  评论(0编辑  收藏  举报

导航