Python의 SSL 모듈을 사용할 수 없음 (OSX에서)


21

pip installOSX 10.13의 virtualenv에서 실행하는 데 문제가 있습니다. 나는 이미 달리고 brew install openssl경로는을 /usr/local/include/openssl가리 킵니다 ../opt/openssl/include/openssl. 누구든지 이것을 고치는 방법을 알고 있습니까? 을 python사용하여 다시 설치 한 후에 발생했습니다 brew install.

pip는 TLS / SSL이 필요한 위치로 구성되지만 Python의 ssl 모듈은 사용할 수 없습니다. 필로우 수집 URL을 가져올 수 없습니다 https://pypi.python.org/simple/pillow/ : SSL 인증서를 확인하는 데 문제가 있습니다. SSL 모듈을 사용할 수 없으므로 HTTPS URL에 연결할 수 없습니다. -skipping Pillow 요구 사항을 충족하는 버전을 찾을 수 없습니다 (버전에서 :) Pillow에 대해 일치하는 배포를 찾을 수 없습니다

업데이트 : 여기에 더 많은 정보가 있습니다.

 which python
/usr/local/opt/python/libexec/bin/python
 which pip
/usr/local/opt/python/libexec/bin/pip
 python --version
Python 3.7.4
 pip --version
pip 19.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
 brew info python
python: stable 3.7.4 (bottled), HEAD
Interpreted, interactive, object-oriented programming language
https://www.python.org/
/usr/local/Cellar/python/3.6.5_1 (4,795 files, 100.0MB)
  Poured from bottle on 2019-10-08 at 14:39:37
/usr/local/Cellar/python/3.7.4_1 (3,903 files, 60.6MB) *
  Poured from bottle on 2019-10-08 at 14:37:10
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/python.rb

그렇습니다. 3.6.5_1과 3.7.4_1을 둘 다 설치해야하므로 둘 사이를 전환해야합니다.

 brew unlink openssl
Unlinking /usr/local/Cellar/openssl/1.0.2s... 0 symlinks removed

의 출력을 보여주는 시작 which python, which pip, python --version, pip --version. 그런 다음 마지막으로 확인했을 때 openssl통에만 있었으므로 /usr/local/include/openssl존재하지 않아야합니다 brew unlink openssl.
ivan_pozdeev

@ivan_pozdeev 물론, 출력을 추가했습니다. 나는 이미 시도했다 brew unlink.
John M.

답변:


53

ssl모듈뿐만 아니라 기저 C 확장이 나타날의 일부가 python화학식 :

Mac-Admin:~ admin$ python3
Python 3.7.4 (default, Sep  7 2019, 18:27:02) 
[Clang 10.0.1 (clang-1001.0.46.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ssl
>>> ssl
<module 'ssl' from '/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/ssl.py'>
>>> import _ssl
>>> _ssl
<module '_ssl' from '/usr/local/Cellar/python/3.7.4_1/Frameworks/Python.framework/Versions/3.7/lib/python3.7/lib-dynload/_ssl.cpython-37m-darwin.so'>

따라서 대부분 누락 brew reinstall python되면 수정해야 할 패키지 설치 손상을 의미합니다 .


또한 Homebrew는 여러 버전을 공존시킬 수 있지만 설치 논리는 대체 버전 이 버전 화 된 공식을 통해 설치되지 않는 한 대체 버전을 계속 작동하도록 설계되지 않았습니다 (예 : 정기적으로 이전 버전을 정기적으로 제거함)brew cleanup ).

따라서 Python 버전 또는 버전이 지정된 수식을 제공하는 타사 탭을 정기적으로 전환 해야하는 경우 (을 pyenv통해 사용 가능 brew)을 사용하는 것이 좋습니다.


8
감사! brew reinstall실제로 수정합니다.
John M.

11

Mac OSX 카탈리나 (OSX Mojave와 동일한 문제) Pyenv

이 주제를 검색하는 사람에게도 동일한 제시 문제가 있었지만 Homebrew와 Pyenv를 통해 Python을 설치했습니다! Pyenv를 사용하여 버전을 쉽게 관리하는 것이 더 좋을 것입니다. @ivan_pozdeev의 답변에서 언급했듯이 여기에 원하는 세부 사항이 있습니다.

당신의 상황이 비슷하다면, 위의 해결책 중 어느 것도 제대로 설정하기에 충분하지 않습니다. 부분적으로 내가 여기 Pyenv 관련 답변으로 도움이되었다 https://stackoverflow.com/a/51797298/3084820 나는 또한 한 일어난 pyenv-virtualenv설치 그것의 일반적인는이 두 가지를 사용하는 등, 그래서 그뿐만 아니라 언급.

마침내 문제를 해결하기 위해 다음 단계를 수행했습니다.

brew uninstall python
rm -rf $(pyenv root)
brew uninstall pyenv-virtualenv   # you may not have this installed, but...
brew uninstall pyenv

이제 Pyenv를 사용하여 깔끔하게 설치할 수 있습니다.

brew install pyenv
pyenv install 3.6.10  (or whatever version you want)

이로 인해 Python 3.6.10을 깨끗하고 효과적으로 설치할 수 있었으며 원하는 경우 다른 버전을 설치하고 Pyenv로 전환 할 수있었습니다.


나는 같은 상황에 있다고 생각합니다. 지금, brew uninstall python당신은 그냥 사용 하는 경우 필요 pyenv합니까? 아니면 어딘가에서 충돌이 발생합니까? 또한, 나는 시도했다. brew uninstall python그리고 "오류 : /usr/local/Cellar/python/3.7.7 [다른 패키지들]이 필요하기 때문에 제거를 거부했다"라는 오류 메시지를 던졌다. 에 대한 제안을 계속하는 것이 안전 할 수도 brew uninstall --ignore-dependencies python있지만 그럼에도 불구하고 주저합니다. 이 버전의 파이썬을 어떻게 사용했는지, 어떻게 든 여전히 사용하고 있는지 기억할 수 없습니다.
Antoine

@ Antoine, brew로 python을 다시 설치하지 않고 pyenv 에서이 문제를 해결할 수 있다고 생각합니다. 그러나 pyenv를 사용하여 특정 Python 버전을 다시 설치했습니다. pyenv uninstall 3.6.6 pyenv install 3.6.6 pyenv global 3.6.6
wronk

귀하의 의견에 감사드립니다! 파이썬을 제거하지 않을 것이라는 오류를 던 졌음 brew uninstall python 에도 불구 하고 실행으로 인해 사라진 문제가 사라진 것으로 보입니다 (그러나 확실하지는 않습니다) . 어쩌면 명령은 파이썬 제거로 진행하지 않기로 결정하기 전에 어쨌든 예비 청소를 했습니까? 아니면 내가 한 다른 일이있을 수 있습니다. 어쨌든, 난 여전히 데 다른 파이썬의 또 다른 버전으로 문제를, 그리고 당신이 제안대로 내가 그 버전을 다시 설치 것이라 생각합니다.
Antoine

2

카탈리나와 비슷한 문제가 있었고 홈 브루를 다시 설치하지 못했습니다. 나는 몇 가지를 시도했다.

brew reinstall openssl
brew reinstall pyenv
brew reinstall pyenv-virtualenv

궁극적으로 나를 위해 일한 유일한 것은 기본 파이썬 설치뿐만 아니라 완전히 제거 한 다음 모든 것을 다시 설치하는 것이 었습니다.

brew uninstall pyenv pyenv-virtualenv
brew install pyenv pyenv-virtualenv
pyenv uninstall 3.x.x
pyenv install 3.x.x
pip install -r requirements.txt

않습니다 brew uninstall pyenv pyenv-virtualenv귀하의 제안에 따라 모든 가상 환경을 제거pyenv uninstall 3.x.x 않습니까?
Antoine

0

같은 문제가 있지만 다시 설치해도 효과가 없습니다.

⇒ python3
/ usr / local / bin / python3 blamb @ cha-109164-l : / usr / local / bin | master⚡

⇒ 어느 pip3 / usr / local / bin / pip3 blamb @ cha-109164-l : / usr / local / bin | master⚡

⇒ pip3 -V pip 19.3.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7) blamb @ cha-109164-l : / usr / local / bin | master⚡

⇒ python3 -V Python 3.7.0 blamb @ cha-109164-l : / usr / l


2
스택 오버플로에 오신 것을 환영합니다! 코드를 형식화하기 위해 답변을 편집 할 수 있습니다. 예를 들어, 코드 줄 앞의 공백은 코드로 표시됩니다. 질문과 답변을 올바르게 표시하는 방법을 더 잘 이해하기 위해 서식 도움말 을 읽을 수 있습니다 . 형식이 잘 지정되면 더 좋은 기회를 얻게됩니다.
rvbarreto

0

나는 같은 오류가 있었고 pyenv 환경에서 python 3.6.5를 사용하고 있었기 때문입니다. 아래 치료법이 나를 위해 일했습니다.

pyenv install 3.7.3
pyenv global 3.7.3


0

내 수정은 pyenv와 python을 다시 설치하는 것입니다.

 brew uninstall pyenv pyenv-virtualenv
 brew install pyenv pyenv-virtualenv
 pyenv uninstall 3.6.5
 pyenv install 3.6.5
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.