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に接続できません。-スキップ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の両方をインストールしています。これは、2つを切り替える必要がある場合があるためです。

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

の出力を示して起動しwhich pythonwhich pippython --versionpip --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のバージョン間で定期的に切り替える必要がある場合pyenvbrewまたはを介して利用可能)、またはバージョン化された数式を提供するサードパーティのタップを使用することを検討してください。


8
ありがとう!brew reinstall確かにそれを修正します。
John M.

11

Mac OSX Catalina(およびOSX Mojaveの同じ問題)Pyenv

このトピックを検索している誰にとっても、私は同じ問題を抱えていましたが、HomebrewとPyenvの両方を介してPythonをインストールしました!! Pyenvを使用してバージョンを簡単に管理する方が(IMO)良かったでしょう。@ivan_pozdeevが回答で述べたように、ここにあなたが望むかもしれないいくつかの詳細があります。

あなたの状況が似ている場合、上記の解決策はどれも物事を正しく設定するのに十分ではありません。部分的に私はここでPyenv関連の回答に助けられました:https ://stackoverflow.com/a/51797298/3084820 私もたまたまpyenv-virtualenvインストールしたので、これら2つを一緒に使用するのが一般的であることにも言及しました。

私は最終的に問題を解決するために次の手順を実行しました:

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ですが、それでも私はためらっています。私がこのバージョンのpythonをどのように使用したか思い出せず、どういうわけか私はまだそれを使用しています。
アントワーヌ

@ Antoine、pythonをbrewで再インストールしなくても、pyenvでこれを修正できたと思います。私はしかし、pyenvと特定のPythonのバージョンを再インストールしました: pyenv uninstall 3.6.6 pyenv install 3.6.6 pyenv global 3.6.6
wronk

@wronkご入力ありがとうございます!pythonをアンインストールしないというエラーがスローされたbrew uninstall python にもかかわらず、実行すると、どういうわけか実行しいた問題が消えたようです(完全にはわかりません)。たぶんコマンドは、Pythonのアンインストールを続行しないと決定する前に、とにかくいくつかの予備的なクリーニングを行いましたか?それとも私がやったことが他にあるのかもしれません。いずれにせよ、私はまだ持っています異なるのpythonの別のバージョンの問題を、と私はあなたが提案として、私はそのバージョンを再インストールすると思います。
アントワーヌ

2

カタリナにも同様の問題があり、自作の再インストールを機能させることができませんでした。私はいくつかのことを試しました。

brew reinstall openssl
brew reinstall pyenv
brew reinstall pyenv-virtualenv

結局、私にとってうまくいった唯一のことは、基礎となるpythonのインストールと同様に両方を完全にアンインストールしてから、すべてを再インストールすることでした。

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か?
アントワーヌ

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⚡

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

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


2
スタックオーバーフローへようこそ!コードをフォーマットするために、回答を編集することができます。たとえば、コード行の前に4つのスペースがあると、コードとしてマークされます。質問と回答を適切にマークダウンする方法を理解するために、フォーマットのヘルプを読むことをお勧めします。それらが適切にフォーマットされている場合は、それらを使用する可能性が高くなります。
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.