[PYTHON] Python AttributeError : 'module'객체에 'SSL_ST_INIT'속성이 없습니다.
PYTHONPython AttributeError : 'module'객체에 'SSL_ST_INIT'속성이 없습니다.
내 파이썬 스크립트가 실패하고있다.
Traceback (most recent call last):
File "./inspect_sheet.py", line 21, in <module>
main()
File "./inspect_sheet.py", line 12, in main
workbook_name=workbook_name,
File "./google_sheets.py", line 56, in __init__
self.login()
File "./google_sheets.py", line 46, in login
self.client = gspread.authorize(credentials)
File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 335, in authorize
client.login()
File "/usr/local/lib/python2.7/site-packages/gspread/client.py", line 98, in login
self.auth.refresh(http)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 598, in refresh
self._refresh(http.request)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 769, in _refresh
self._do_refresh_request(http_request)
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 795, in _do_refresh_request
body = self._generate_refresh_request_body()
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 1425, in _generate_refresh_request_body
assertion = self._generate_assertion()
File "/usr/local/lib/python2.7/site-packages/oauth2client/client.py", line 1554, in _generate_assertion
private_key, self.private_key_password), payload)
File "/usr/local/lib/python2.7/site-packages/oauth2client/crypt.py", line 162, in from_string
from OpenSSL import crypto
File "/usr/local/lib/python2.7/site-packages/OpenSSL/__init__.py", line 8, in <module>
from OpenSSL import rand, crypto, SSL
File "/usr/local/lib/python2.7/site-packages/OpenSSL/SSL.py", line 118, in <module>
SSL_ST_INIT = _lib.SSL_ST_INIT
AttributeError: 'module' object has no attribute 'SSL_ST_INIT'
해결법
-
==============================
1.문제는 pyOpenSSL, pyOpenSSL-0.15.1을 설치 한 것이 었습니다.
문제는 pyOpenSSL, pyOpenSSL-0.15.1을 설치 한 것이 었습니다.
내가 그랬어 :
pip uninstall pyopenssl
그리고
pip install pyopenssl
... 그리고 파이썬 스크립트가 다시 작동했습니다!
-
==============================
2.파이와 관련된 명령 중 아무 것도 나를 위해 일하지 않았기 때문에 pip와 함께 pyopenssl을 업그레이드하는 것이 효과가 없었습니다. easy_install으로 pyopenssl을 업그레이드하면 위의 문제를 해결할 수 있습니다.
파이와 관련된 명령 중 아무 것도 나를 위해 일하지 않았기 때문에 pip와 함께 pyopenssl을 업그레이드하는 것이 효과가 없었습니다. easy_install으로 pyopenssl을 업그레이드하면 위의 문제를 해결할 수 있습니다.
sudo python -m easy_install --upgrade pyOpenSSL
신용 @ 델리 미터 (답)
-
==============================
3.pyopenssl 모듈을 업데이트하십시오 :
pyopenssl 모듈을 업데이트하십시오 :
$ sudo pip install -U pyopenssl
-
==============================
4.최근에 같은 문제가 발생했으며 몇 시간 동안 조사한 결과 새 암호화 2.0 업그레이드로 인한 것으로 나타났습니다. 이 업그레이드는 pyopenssl (Sentry, Google Analytics 등)을 사용하여 많은 패키지를 손상시킵니다. 1.9로 다운 그레이드하면 문제가 해결됩니다.
최근에 같은 문제가 발생했으며 몇 시간 동안 조사한 결과 새 암호화 2.0 업그레이드로 인한 것으로 나타났습니다. 이 업그레이드는 pyopenssl (Sentry, Google Analytics 등)을 사용하여 많은 패키지를 손상시킵니다. 1.9로 다운 그레이드하면 문제가 해결됩니다.
"pip install -U"를 사용하는 경우 requirements.txt에없는 패키지는 자동으로 업그레이드됩니다.
-
==============================
5.필자의 경우 문제는 패키지가 루트 디렉토리에 설치되어 있고 Linux 사용자 forvas와 함께 pyopenssl을 요청한 스크립트를 실행하고 있었다는 것입니다. 그리고 그 사용자는 루트에 설치된 라이브러리를 사용할 수 없습니다.
필자의 경우 문제는 패키지가 루트 디렉토리에 설치되어 있고 Linux 사용자 forvas와 함께 pyopenssl을 요청한 스크립트를 실행하고 있었다는 것입니다. 그리고 그 사용자는 루트에 설치된 라이브러리를 사용할 수 없습니다.
그래서 먼저 적성이나 apt-get로 패키지를 제거해야했습니다.
sudo aptitude purge python-openssl
따라서 패키지를 다시 설치해야하지만 라이브러리를 요청하는 스크립트를 실행하는 사용자를 고려해야합니다. Linux 사용자 및 pip - argument의 인수에 따라 라이브러리가 설치된 위치를 살펴보십시오.
사례 1
forvas@server:$ pip install pyopenssl
사례 2
forvas@server:$ sudo pip install pyopenssl
사례 3
forvas@server:$ sudo pip install --user pyopenssl
사례 4
root@server:$ pip install pyopenssl
사례 5
root@server:$ pip install --user pyopenssl
결론
내 문제는 라이브러리가 케이스 5의 디렉토리에 설치되었다는 것입니다.
해결책
-
==============================
6.나는 VM에 ssh를 시도했을 때 우분투 16.04 VM의 콘솔에서 비슷한 파이썬 스택 덤프를보고있었습니다.
나는 VM에 ssh를 시도했을 때 우분투 16.04 VM의 콘솔에서 비슷한 파이썬 스택 덤프를보고있었습니다.
SSL_ST_INIT = _lib.SSL_ST_INIT AttributeError: 'module' object has no attribute 'SSL_ST_INIT'
Pip은 pyopenssl이 설치되지 않았다고보고했습니다.
대신이 작업을 수행해야했습니다.
$ apt install --reinstall python-openssl
-
==============================
7.나는 이것을 도왔다 :
나는 이것을 도왔다 :
$ easy_install -U pip $ easy_install -U pyOpenSSL
-
==============================
8.나는 우분투 16.04에서 같은 문제를 가지고 있었지만 다음과 같은 문제가 있었다 : virtualenv가 활성화되었을 때 (필자의 경우 셀 룰리 노동자를 실행하기 전에 venv / bin / activate를 실행했다.) - 모든 것이 완벽하게 작동했지만 샐러리를 실행했을 때 전체 경로 및 파이썬 경로를 사용하는 명령 줄에서 - 문제가있었습니다 (그리고 감독자가 실행하는 동일한 문제). 또한 중요한 경우 virtualenv는 동일한 우분투 버전으로 컴퓨터의 다른 곳에 번들되었습니다.
나는 우분투 16.04에서 같은 문제를 가지고 있었지만 다음과 같은 문제가 있었다 : virtualenv가 활성화되었을 때 (필자의 경우 셀 룰리 노동자를 실행하기 전에 venv / bin / activate를 실행했다.) - 모든 것이 완벽하게 작동했지만 샐러리를 실행했을 때 전체 경로 및 파이썬 경로를 사용하는 명령 줄에서 - 문제가있었습니다 (그리고 감독자가 실행하는 동일한 문제). 또한 중요한 경우 virtualenv는 동일한 우분투 버전으로 컴퓨터의 다른 곳에 번들되었습니다.
해결책은 간단했습니다 : PATH에 / full / path / to / venv / bin을 추가하면 (https://serverfault.com/questions/331027/supervisord-how-to-append-to-path 여기에 알려짐)이 문제가 해결되었습니다.
불행히도, 나는 아직 어떤 종류의 업데이트가이 문제를 일으켰는지 정확히 지적하지는 않았지만 희망적으로 이는 누군가를 도울 수 있습니다.
-
==============================
9.AttributeError : 'module'객체에 'SSL_ST_INIT'오류도 없습니다.
AttributeError : 'module'객체에 'SSL_ST_INIT'오류도 없습니다.
하기
sudo pip install pyOpenSSL == 16.2.0
나를 위해 그것을 해결했습니다.
-
==============================
10.내 경우, 그것은 제거 및 업그레이 드에 대해 동일한 오류를 던지고있었습니다. 제거하거나 업그레이드 할 수 없습니다.
내 경우, 그것은 제거 및 업그레이 드에 대해 동일한 오류를 던지고있었습니다. 제거하거나 업그레이드 할 수 없습니다.
AttributeError : '모듈'객체에 'SSL_ST_INIT'속성이 없습니다.
다음은 나를 위해 일했다.
# rm -rf /usr/lib/python2.7/site-packages/OpenSSL/ # rm -rf /usr/lib/python2.7/site-packages/pyOpenSSL-16.1.0.dist-info # rm -rf /usr/lib/python2.7/site-packages/pyOpenSSL-18.0.0-py2.7.egg # pip2.7 install pyopenssl Collecting pyopenssl Downloading . . 100% |████████████████████████████████| 61kB 5.8MB/s Collecting cryptography>=2.2.1 (from pyopenssl) . . Installing collected packages: cryptography, pyopenssl Found existing installation: cryptography 1.7.2 Uninstalling cryptography-1.7.2: Successfully uninstalled cryptography-1.7.2 Successfully installed cryptography-2.2.2 pyopenssl-18.0.0
경고 : 업그레이드 (sudo pip 설치 pyOpenSSL == 16.2.0) 또는 제거 (pip uninstall pyopenssl)가 도움이되지 않는 경우에만 시도하십시오
-
==============================
11.내 문제는 /usr/lib/python2.7/dist-packages/에있는 Python openssl 버전 때문입니다.
내 문제는 /usr/lib/python2.7/dist-packages/에있는 Python openssl 버전 때문입니다.
dpkg -l | grep openssl은 다음과 같이 나타 냈습니다.
ii python-openssl 0.15.1-2build1 all Python 2 wrapper around the OpenSSL library
sudo apt-get python-openssl을 사용하여 제거했습니다. 나는 pip 버전의 배포본을 설치하기 위해 다음을 실행했다.
curl -o ./get-pip.py https://bootstrap.pypa.io/get-pip.py sudo python2 ./get-pip.py
pip --version이 이제 표시됩니다.
pip 18.0 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)
나는 필자가 완료하려고했던 필 pip를 수행 할 수 있었다.
-
==============================
12.비슷한 오류가 발생했습니다.
비슷한 오류가 발생했습니다.
from OpenSSL import rand, crypto, SSL File "/usr/local/lib/python3.5/dist-packages/OpenSSL/SSL.py", line 112, in <module> SSL_ST_INIT = _lib.SSL_ST_INIT AttributeError: module 'lib' has no attribute 'SSL_ST_INIT'
pip가 아무 것도 설치할 수 없기 때문에 다른 답변들 중 아무 것도 그것을 고칠 수는 없습니다. 대신, 나는 터미널에서부터 이렇게했습니다.
sudo rm -r /usr/local/lib/python3.5/dist-packages/OpenSSL
그런 다음 pip와 함께 pyopenssl을 다시 설치하십시오.
sudo pip install pyopenssl
모든 것은 육즙이었다.
from https://stackoverflow.com/questions/43267157/python-attributeerror-module-object-has-no-attribute-ssl-st-init by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] Python MySQL 커넥터 - fetchone을 사용할 때 읽지 않은 결과가 있습니다. (0) | 2018.10.30 |
---|---|
[PYTHON] 특별한 방법에 대한 파이썬 문서는 어디에 있습니까? (__init__, __new__, __len__, ...) (0) | 2018.10.30 |
[PYTHON] Sphinx autodoc-skip-member를 내 함수에 연결하십시오. (0) | 2018.10.30 |
[PYTHON] 파이썬 3.x의 최종 수업 - 귀도가 나에게 말하지 않는 것? (0) | 2018.10.30 |
[PYTHON] 파이썬에서리스트 객체를 상속하고 확장하는 방법은? (0) | 2018.10.30 |