python2와 OpenSSL이 Kali에서 함께 작동하지 않습니다. 해결 방법은 무엇입니까?

python2와 OpenSSL이 Kali에서 함께 작동하지 않습니다. 해결 방법은 무엇입니까?

amd64에 Kali GNU/Linux Rolling(현재 버전 2017.3)인 Kali Linux 배포판이 있습니다. 나는 정기적으로 최신 상태를 유지하고 있으며 시스템 파일이나 패키지 관리에 간섭하지 않았습니다. 그러나 얼마 전 python2와 OpenSSL이 함께 작동하는 것을 중단했습니다. 처음에는 이것이 단순히 이상했지만 지금은 매우 성가신 일이 되었습니다. 예를 들어 다음과 같은 간단한 호출은 실패합니다.

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

다양한 검색 엔진 결과를 조사한 결과 이것이 알려진 비호환성 문제인 것 같지만 확실한 해결책은 없는 것으로 나타났습니다. 적극적으로 유지 관리되는 배포판에서 어떻게 그런 일이 일어날 수 있는지 궁금합니다. (실제로 동일한 설정을 사용하는 동료에게는 이러한 문제가 발생하지 않습니다.)

전체 배포판을 다시 설치하지 않고 이 문제를 복구/수정할 수 있는 간단한 방법이 있습니까?

설치된 버전은 python/kali-rolling 2.7.14-1, python-openssl/kali-rolling 16.2.0-1 및 python-cffi/kali-rolling 1.9.1-2입니다.

답변1

pip배포 저장소에서 설치했다고 가정합니까 ?

그렇다면 현재 버전을 제거 pip하고 다음과 같이 설치하십시오.get-pip.py:

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

그러면 적절한 종속성을 모두 가져와야 하며 pip작업이 다시 시작됩니다.

답변2

strace 덕분에 물건이 /usr/lib/python2.7/dist-packages범인이었습니다. 이를 제거하면 문제가 해결되었습니다.

교훈: 비표준 패키지가 필요한 프로그램에는 가상 환경을 사용합니다.

관련 정보