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) 编辑 收藏 举报