我pip install在 OSX 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 证书时出现问题:无法连接到 HTTPS URL,因为 SSL 模块不可用。- 跳过 找不到满足枕头要求的版本(来自版本:)找不到枕头的匹配发行版
更新:这里有更多信息:
? which python
/usr/local/opt/python/libexec/bin/python
Run Code Online (Sandbox Code Playgroud)
? which pip
/usr/local/opt/python/libexec/bin/pip
Run Code Online (Sandbox Code Playgroud)
? python --version
Python 3.7.4
Run Code Online (Sandbox Code Playgroud)
? pip --version
pip 19.1.1 from /usr/local/lib/python3.7/site-packages/pip (python 3.7)
Run Code Online (Sandbox Code Playgroud)
? 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
Run Code Online (Sandbox Code Playgroud)
是的,我同时安装了 3.6.5_1 和 3.7.4_1,因为我有时可能需要在两者之间切换。
? brew unlink openssl
Unlinking /usr/local/Cellar/openssl/1.0.2s... 0 symlinks removed
Run Code Online (Sandbox Code Playgroud)
iva*_*eev 80
该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'>
Run Code Online (Sandbox Code Playgroud)
所以它丢失很可能意味着brew reinstall python应该修复的包安装损坏。
还要注意的是,虽然 Homebrew 允许多个版本共存,但它的安装逻辑并不是为了保持替代版本的运行而设计的,除非它们是通过版本化公式安装的(例如,定期删除常规 中的旧版本brew cleanup)。
因此,如果您需要在 Python 版本之间进行常规切换,pyenv请考虑使用(也可通过brew) - 或某些为其提供版本化公式的 3rd-party tap。
Mat*_*gan 33
Mac OSX Catalina(以及 OSX Mojave 上的相同问题) Pyenv
对于搜索此主题的任何人,我都遇到了同样的问题,但是通过 Homebrew 和 Pyenv 安装了 Python!仅使用 Pyenv 来轻松管理版本会更好(IMO)。正如@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
Run Code Online (Sandbox Code Playgroud)
现在,对于可使用 Pyenv 管理的全新安装:
brew install pyenv
pyenv install 3.6.10 (or whatever version you want)
Run Code Online (Sandbox Code Playgroud)
这给了我一个干净、有效的 Python 3.6.10 安装,如果我想要或需要,我可以安装不同的版本并在 Pyenv 之间切换。
这个问题也可能是因为你的 python 发行版是使用错误版本的 openssl 编译的。
对 OpenSSL 1.1.x 的支持,仅在 Python 2.7.13、3.5.3 和 3.6.0 中添加(参见https://github.com/pyenv/pyenv/issues/950#issuecomment-562366902)
因此,如果您尝试安装旧版本的 Python,则必须首先使用 brew 卸载新版本的 openssl,然后才能使用 pyenv 安装旧版本的 Python
brew uninstall --ignore-dependencies openssl@1.1
pyenv uninstall 3.5.2 # deinstall old versions compiled with the wrong version of openssl
pyenv install 3.5.2
Run Code Online (Sandbox Code Playgroud)
另一方面,如果您尝试安装较新版本的 Python,请确保您已安装最新版本的 openssl,然后再使用 pyenv 安装它们:
brew upgrade openssl
pyenv uninstall 3.7.4 # deinstall old versions compiled with the wrong version of openssl
pyenv install 3.7.4
Run Code Online (Sandbox Code Playgroud)
小智 5
我在 Catalina 上遇到了类似的问题,无法重新安装自制软件。我尝试了几件事。
brew reinstall openssl
brew reinstall pyenv
brew reinstall pyenv-virtualenv
Run Code Online (Sandbox Code Playgroud)
最终,唯一对我有用的是完全卸载两者以及底层的 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
Run Code Online (Sandbox Code Playgroud)
小智 5
我的解决方法是重新安装 pyenv 和 python
brew uninstall pyenv pyenv-virtualenv
brew install pyenv pyenv-virtualenv
pyenv uninstall 3.6.5
pyenv install 3.6.5
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
55050 次 |
| 最近记录: |