Python2 und OpenSSL funktionieren unter Kali nicht zusammen. Wie kann ich das beheben?

Python2 und OpenSSL funktionieren unter Kali nicht zusammen. Wie kann ich das beheben?

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 pipaus den Distributions-Repositories durchgeführt haben?

Wenn ja, entfernen Sie einfach die aktuelle Version von pipund 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 pipSystem 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.

verwandte Informationen