私はamd64(現在のバージョン2017.3)でKali GNU / Linux RollingであるKali Linuxディストリビューションを持っています。定期的に更新していますが、システムファイルやパッケージ管理に支障はありません。しかし、しばらく前から、python2とOpenSSLはもはや一緒に使用されていません。最初は変でしたが、今は大きな面倒なことになりました。たとえば、次の単純な呼び出しは失敗します。
# pip
/usr/lib/python2.7/dist-packages/cffi/model.py:532: UserWarning: 'point_conversion_form_t' has no values explicitly defined; guessing that it is equivalent to 'unsigned int'
% self._get_c_name())
Traceback (most recent call last):
File "/usr/bin/pip", line 9, in <module>
from pip import main
File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 21, in <module>
from pip._vendor.requests.packages.urllib3.exceptions import DependencyWarning
File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 64, in <module>
vendored("cachecontrol")
File "/usr/lib/python2.7/dist-packages/pip/_vendor/__init__.py", line 36, in vendored
__import__(modulename, globals(), locals(), level=0)
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/__init__.py", line 9, in <module>
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/wrapper.py", line 1, in <module>
File "/usr/share/python-wheels/CacheControl-0.11.7-py2.py3-none-any.whl/cachecontrol/adapter.py", line 4, in <module>
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/__init__.py", line 52, in <module>
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/packages/__init__.py", line 59, in <module>
File "/usr/share/python-wheels/requests-2.12.4-py2.py3-none-any.whl/requests/packages/__init__.py", line 32, in vendored
File "/usr/share/python-wheels/urllib3-1.19.1-py2.py3-none-any.whl/urllib3/contrib/pyopenssl.py", line 47, in <module>
File "/usr/lib/python2.7/dist-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/usr/lib/python2.7/dist-packages/OpenSSL/SSL.py", line 112, in <module>
if _lib.Cryptography_HAS_SSL_ST:
AttributeError: 'FFILibrary' object has no attribute 'Cryptography_HAS_SSL_ST'
さまざまな検索エンジンの結果を調べたところ、これは既知の非互換性の問題のようですが、実質的な解決策がないことがわかりました。私を混乱させることは、積極的に維持されているディストリビューションでこのようなことが起こることができるということです。 (実際に同じ設定をしている同僚は、このような問題はありません。)
ディストリビューション全体を再インストールせずにこの問題を簡単に修正/修正する方法はありますか?
インストールされたバージョンは、python/kali-rolling 2.7.14-1、python-openssl/kali-rolling 16.2.0-1、python-cffi/kali-rolling 1.9.1-2です。
答え1
pip
distroリポジトリからインストールしたとしますか?
その場合は、現在のバージョンを削除してインストールpip
してください。pip.pyを入手:
curl -o ./get-pip.py https://bootstrap.pypa.io/get-pip.py
python3 ./get-pip.py
python2 ./get-pip.py
これにより、適切なすべての依存関係を取得し、再度pip
作業することができます。
答え2
犯人は/usr/lib/python2.7/dist-packages
何かです。 straceに感謝します。これを削除すると問題が解決しました。
レッスン:非標準パッケージを必要とするプログラムには仮想環境を使用してください。