在使用Pycharm创建python虚拟环境时,会报错如下:
系统环境:Centos 7.9
Pycharm版本:2024.3.5
Python版本:3.11.11
伴随还有一个SSL的报错
问题原因:
python3.11需要使用openssl 1.1.1 以上的版本,而Centos7默认的openssl版本是1.0.2版本。
解决方法:
重新编译python3.11,在此之前先手动编译openssl 1.1.1以上的版本
步骤如下:
1、编译openssl
这里以openssl 1.1.1v版本为例,先下载openssl的安装包
tar -zxvf openssl-1.1.1v.tar.z cd openssl-1.1.1v ./config --prefix=/usr/local/openssl make make install
简单配置一下
cd /usr/local/openssl ln -s lib64 lib
2、重新编译python3.11
cd /Python-3.11.6 ./configure --with-openssl=/usr/local/openssl/ make make install
可能有报错
*** WARNING: renaming "_ssl" since importing it failed: libssl.so.1.1: cannot open shared object file: No such file or directory *** WARNING: renaming "_hashlib" since importing it failed: libcrypto.so.1.1: cannot open shared object file: No such file or directory
修改LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/usr/local/openssl/lib:$LD_LIBRARY_PATH ldconfig
再重新编译python3.11即可
以上解决了openssl 的报错问题
但是创建venv仍旧报错。
3、手动创建venv测试
python3.11 venv myenv virtualenv myenv
报错如下:
libssl.so.1.1: cannot open shared object file: No such file or directory
目测还是ssl的问题。
使用命令
openssl version
发现openssl还是1.0.2版本
对openssl 1.1.1版本进行一些配置
mv /usr/bin/openssl /usr/bin/openssl.old mv /usr/lib/openssl /usr/lib/openssl.old ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl ln -s /usr/local/openssl/include/openssl /usr/include/openssl echo "/usr/local/openssl/lib" >> /etc/ld.so.conf ldconfig -v
再次使用命令
openssl version
可以看到openssl 已经到了1.1.1版本
4、测试
python3.11 venv myenv virtualenv myenv
成功,问题解决
网友留言: