Tan*_*Dat 5 linux python ssl ubuntu installation
我在使用 ssl 安装 Python 3.7.3 时遇到了麻烦。我所有的编译都成功了,但是模块_ssl的最终安装失败了。
第一步:安装openssl
git clone https://github.com/openssl/openssl.git
cd openssl
git checkout tags/OpenSSL_1_0_2r
./Config
make
sudo make install
Run Code Online (Sandbox Code Playgroud)
openssl 安装在 /usr/local/ssl
第二步:配置Python3.7.3
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
tar xzvf Python-3.7.3.tgz
cd Python-3.7.3
./configure --with-openssl=/usr/local/ssl
Run Code Online (Sandbox Code Playgroud)
配置正确:
检查 /usr/local/ssl 中的 openssl/ssl.h ... 是
检查针对 OpenSSL 的编译和链接是否有效......是的
检查 libssl 中的 X509_VERIFY_PARAM_set1_host ... 是
第三步:编译python
make
Run Code Online (Sandbox Code Playgroud)
步骤4a:安装python
sudo make install
Run Code Online (Sandbox Code Playgroud)
此步骤失败:
*** 警告:自导入失败后重命名“_ssl”:build/lib.linux-x86_64-3.7/_ssl.cpython-37m-x86_64-linux-gnu.so:未定义符号:X509_VERIFY_PARAM_set_hostflags
...
以下模块成功构建但由于无法导入而被删除:
_ssl
步骤 4b:将 python 安装到本地文件夹中
make install prefix="~/Downloads/install"
Run Code Online (Sandbox Code Playgroud)
在这种情况下安装成功。
步骤 4apython3 -c "import ssl"
失败后。但是,如果我替换_ssl
在步骤 4b 中编译的模块,则上述命令有效。
sudo rm /usr/local/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu_failed.so
sudo cp ~/Downloads/install/lib/python3.7/lib-dynload/_ssl.cpython-37m-x86_64-linux-gnu.so /usr/local/lib/python3.7/lib-dynload/
Run Code Online (Sandbox Code Playgroud)
谁能解释为什么会发生这种情况?
小智 0
编译 OpenSSL 并 make install(如果默认会安装在 下/usr/local/ssl
);确保使用共享选项进行编译
将其完整路径添加到链接器搜索配置文件:/etc/ld.so.conf
以 root 身份输入:ldconfig
重新编译。