系统安装有多个Python版本有2.7,3.5,再安装3.10
编译安装完python3.10后,pip3.10不能使用!
出现报错:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not …
网上文章说在configure这一步上加上–with openssl:
./configure --prefix=/usr/local/python3 --with-openssl=/usr/bin/openssl
但是问题没有解决,用yum进行更新openssl也不行,再编译python3.10也还是报错。
问题解决:
下载openssl包,重新安装openssl:
#下载openssl包:
wget https://github.com/openssl/openssl/archive/OpenSSL_1_1_1u.tar.gz
#解压:
tar -xvf OpenSSL_1_1_1u.tar.gz
#编译安装:
cd OpenSSL_1_1_1u
./config
make
make test
make install
在安装过程中,时间略长。
打开/usr/local/bin/openssl再次报错:
openssl: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory
原因:执行ldd + 程序、可执行文件的绝对路径命令,你就会发现,是因为找不到库的位置造成的
ldd /usr/local/bin/openssl
linux-vdso.so.1 => (0x0000007f8a782000)
libssl.so.1.1 => not found
libcrypto.so.1.1 => not found
libpthread.so.0 => /lib/aarch64-linux-gnu/libpthread.so.0 (0x0000007f8a710000)
libc.so.6 => /lib/aarch64-linux-gnu/libc.so.6 (0x0000007f8a5c9000)
/lib/ld-linux-aarch64.so.1 (0x0000007f8a757000)
问题解决:
查看/usr/local/lib文件夹里有无有如下的库文件:libcrypto.so.11和libssl.so.1.1
在etc/environment文件中添加/usr/local/lib,无效。
为其在/usr/bin/或在 /lib/aarch64-linux-gnu/建立软连接:
sudo ln -s /usr/local/lib/libssl.so.1.1 /usr/bin/libssl.so.1.1
sudo ln -s /usr/local/lib/libcrypto.so.1.1 /usr/bin/libcrypto.so.1.1
再次打开/usr/local/bin/openssl ,成功进入!
比较旧版和新版openssl的版本号:
对旧版openssl进行保存或删除
重新安装编译python3.10
#下载源码包:
wget https://www.python.org/ftp/python/3.10.4/Python-3.10.4.tgz
#解压:
tar -xvf P*
#编译安装:
cd P*4
configure --with-openssl=/usr/local/bin
提示错误参数–with-openssl,最终结果表明没必要
make && make install
测试用pip3.10安装插件,成功
删除源码包,也可以保存
#删除openssl源码包:
rm -Rf O*
rm -Rf o*
#删除Python源码包:
rm -Rf P*
————————————————