python2 y OpenSSL no funcionan juntos en Kali: ¿cómo solucionarlo?

python2 y OpenSSL no funcionan juntos en Kali: ¿cómo solucionarlo?

Tengo una distribución Kali Linux que es Kali GNU/Linux Rolling (actualmente versión 2017.3) en amd64. Lo mantengo actualizado periódicamente y no me he entrometido con los archivos del sistema ni con la administración de paquetes. Sin embargo, hace algún tiempo, python2 y OpenSSL dejaron de funcionar juntos. Al principio esto era simplemente extraño, pero ahora es una gran molestia. Por ejemplo, una llamada simple como esta falla:

# 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'

Examinando varios resultados de motores de búsqueda descubrí que esto parece ser un problema de incompatibilidad conocido, pero aparentemente no existe una solución limpia tangible. Lo que me desconcierta es cómo puede suceder eso en una distribución mantenida activamente. (De hecho, un colega con la misma configuración no tiene este problema).

¿Existe una manera sencilla de reparar/arreglar esto sin reinstalar toda la distribución?

Las versiones instaladas son python/kali-rolling 2.7.14-1, python-openssl/kali-rolling 16.2.0-1 y python-cffi/kali-rolling 1.9.1-2.

Respuesta1

¿Supongo que lo ha instalado pipdesde los repositorios de distribución?

Si es así, simplemente elimine la versión actual pipe instálela conget-pip.py:

curl -o ./get-pip.py https://bootstrap.pypa.io/get-pip.py
python3 ./get-pip.py
python2 ./get-pip.py

Esto debería extraer todas las dependencias apropiadas y pipcomenzará a funcionar nuevamente.

Respuesta2

Stuff in /usr/lib/python2.7/dist-packagesfue el culpable, gracias a strace. Quitarlo resolvió el problema.

Lección aprendida: utilice entornos virtuales para programas que requieran paquetes no estándar.

información relacionada