OpenSSLバージョンの問題を解決しようとしています。
MacにはOpenSSLの3つの異なるバージョンがあるようです。
Python 2.7.11のバージョンは0.9.7mです。
python -c "import ssl; print ssl.OPENSSL_VERSION"
OpenSSL 0.9.7m 23 Feb 2007
ターミナルで:
openssl version
OpenSSL 1.0.1h 5 Jun 2014
最近コンパイル/インストール:
/usr/local/ssl/bin/openssl
OpenSSL> version
OpenSSL 1.0.2h 3 May 2016
OpenSSL>
最近、OS Xを10.11.5にアップグレードしました。その過程で、以前に動作していたpythonスクリプトの問題が発生しました。以下はエラーメッセージのスニペットです。
Pythonエラーメッセージ:
You are linking against OpenSSL 0.9.8, which is no longer *
RuntimeError: You are linking against OpenSSL 0.9.8, which is no longer support by the OpenSSL project. You need to upgrade to a newer version of OpenSSL.
(*-はい、これはエラーメッセージの表示方法です。文の途中で切り取られます。)
この問題を解決するための推奨事項は大歓迎です。私が望むのは、Python OpenSSLバージョン1.0.2hと古いバージョン0.9.7mを参照することです。
私はPythonとOpenSSLを何度もインストールしてみました。
新しいバージョンのopensslを使用するpythonのバージョンをインストールできます。
最初に、新しいバージョンのオープンSSLを作成することができます
brew update
brew install openssl
brew link --force openssl
新しいバージョンが表示されるはずです
openssl version -a
次に、新しいバージョンのopensslを使用するpythonの異なるバージョンをインストールできます。 pyenv を使用すると、次のようになります。
CFLAGS="-I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install -v 3.4.3
pythonのopensslのbrewインストールされたバージョンを使用したバージョンのインストールに関する詳細は、こちらを参照してください: https://github.com/yyuu/pyenv/wiki/Common-build -問題
これを回避策として使用します。
export CRYPTOGRAPHY_ALLOW_OPENSSL_098=1
これは、hazmat暗号化ライブラリの最近のチェックのようです。ソースコードは次の場所にあります。
CRYPTOGRAPHY_ALLOW_OPENSSL_098
環境変数は、リスクを冒す意思がある場合、エラーを非推奨の警告にダウングレードします。私もこの1日でOS Xでこれに遭遇したので、最近何かが変わりました。