Python 3.7.3 with sslのインストールに問題があります。すべてのコンパイルは成功しましたが、モジュール_sslの最後のインストールは失敗しました。
ステップ1:opensslをインストールする
git clone https://github.com/openssl/openssl.git
cd openssl
git checkout tags/OpenSSL_1_0_2r
./Config
make
Sudo make install
Opensslは/usr/local/ssl
にインストールされています
ステップ2: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
設定は正しいです:
/ usr/local/sslのopenssl/ssl.hをチェックしています...はい
openSSLに対してコンパイルおよびリンクが機能するかどうかの確認...はい
libsslでX509_VERIFY_PARAM_set1_Hostをチェックしています...はい
ステップ3:Pythonをコンパイルする
make
ステップ4a:Pythonをインストールする
Sudo make install
このステップは失敗しました:
***警告:「_ssl」のインポートに失敗したため、名前を変更しています:build/lib.linux-x86_64-3.7/_ssl.cpython-37m-x86_64-linux-gnu.so:undefined symbol:X509_VERIFY_PARAM_set_hostflags
...
次のモジュールは正常にビルドされましたが、インポートできなかったため削除されました:
_ssl
ステップ4b:pythonをローカルフォルダにインストールします
make install prefix="~/Downloads/install"
この場合、インストールは成功しています。
ステップ4aの後、python3 -c "import ssl"
は失敗しました。しかし、ステップ4bでコンパイルした_ssl
モジュールを置き換えると、上記のコマンドは機能します。
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/
なぜこれが起こるのか誰か説明できますか?
opensslをコンパイルしてインストールします(デフォルトで「/ usr/local/ssl」の下にインストールされます)。必ず共有オプションでコンパイルしてください
リンカー検索設定ファイルへのフルパスを追加します:/etc/ld.so.conf
rootとして入力:ldconfig
再コンパイル