python2 e OpenSSL não jogam juntos no Kali - como consertar?

2

Eu tenho uma distribuição do Kali Linux que é o Kali GNU / Linux Rolling (atualmente versão 2017.3) no amd64. Estou mantendo-o regularmente atualizado e não me intrometi com arquivos do sistema ou com o gerenciamento de pacotes. No entanto, há algum tempo, o python2 e o OpenSSL pararam de tocar juntos. No começo isso era simplesmente estranho, mas agora é um grande incômodo. Por exemplo. uma chamada simples como esta falha:

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

Analisando vários resultados de mecanismos de pesquisa, descobri que esse parece ser um problema conhecido de incompatibilidade, mas aparentemente não há solução limpa tangível. O que me intriga é como isso pode acontecer em uma distro ativamente mantida? (Na verdade, um colega com a mesma configuração não tem esse problema.)

Existe uma maneira simples de reparar / corrigir isso sem reinstalar toda a distribuição?

As versões instaladas são python / kali-rolling 2.7.14-1, python-openssl / kali-rolling 16.2.0-1 e python-cffi / kali-rolling 1.9.1-2.

    
por countermode 30.11.2017 / 16:26

2 respostas

0

Coisas em /usr/lib/python2.7/dist-packages foram as culpadas - graças a strace. A remoção resolveu o problema.

Lição aprendida: Use ambientes virtuais para programas que exigem pacotes não padrão.

    
por 08.12.2017 / 11:36
2

Estou assumindo que você instalou pip dos repositórios de distribuição?

Em caso afirmativo, basta remover a versão atual de pip e instalá-la com get-pip.py :

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

Isso deve puxar todas as dependências apropriadas e seu pip começará a funcionar novamente.

    
por 30.11.2017 / 16:39