
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 pip
desde los repositorios de distribución?
Si es así, simplemente elimine la versión actual pip
e 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 pip
comenzará a funcionar nuevamente.
Respuesta2
Stuff in /usr/lib/python2.7/dist-packages
fue el culpable, gracias a strace. Quitarlo resolvió el problema.
Lección aprendida: utilice entornos virtuales para programas que requieran paquetes no estándar.