
Ich habe eine Kali-Linux-Distribution namens Kali GNU/Linux Rolling (aktuell Version 2017.3) auf amd64. Ich halte sie regelmäßig auf dem neuesten Stand und habe weder an Systemdateien noch an der Paketverwaltung herumgepfuscht. Doch seit einiger Zeit funktionieren Python2 und OpenSSL nicht mehr zusammen. Anfangs war das einfach nur merkwürdig, mittlerweile ist es ein großes Ärgernis. Beispielsweise schlägt ein einfacher Aufruf wie dieser fehl:
# 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'
Beim gründlichen Durchsuchen verschiedener Suchmaschinenergebnisse habe ich herausgefunden, dass dies ein bekanntes Inkompatibilitätsproblem zu sein scheint, aber anscheinend gibt es keine greifbare, saubere Lösung. Was mich verwirrt, ist, wie das in einer aktiv gepflegten Distribution passieren kann? (Tatsächlich hat ein Kollege mit demselben Setup dieses Problem nicht.)
Gibt es eine einfache Möglichkeit, dies zu reparieren/beheben, ohne die gesamte Distribution neu zu installieren?
Die installierten Versionen sind python/kali-rolling 2.7.14-1, python-openssl/kali-rolling 16.2.0-1 und python-cffi/kali-rolling 1.9.1-2.
Antwort1
Ich gehe davon aus, dass Sie die Installation pip
aus den Distributions-Repositories durchgeführt haben?
Wenn ja, entfernen Sie einfach die aktuelle Version von pip
und installieren Sie sie mitget-pip.py:
curl -o ./get-pip.py https://bootstrap.pypa.io/get-pip.py
python3 ./get-pip.py
python2 ./get-pip.py
Dadurch sollten alle entsprechenden Abhängigkeiten abgerufen werden und Ihr pip
System sollte wieder funktionieren.
Antwort2
Der Übeltäter war Zeug drin /usr/lib/python2.7/dist-packages
– danke an strace. Das Entfernen hat das Problem gelöst.
Lektion gelernt: Verwenden Sie virtuelle Umgebungen für Programme, die nicht standardmäßige Pakete erfordern.