pip在Mac中报错:“pip被配置为需要TLS/SSL支持的位置,但Python中的ssl模块不可用。”

9

编辑:评论区或者我找到的其他答案所提供的解决方法主要适用于Linux系统或使用brew安装的默认Python版本。而我遇到的问题是在使用pyenv安装的Python版本上。

当我尝试使用pip安装任何包时,都会出现此错误消息。

WARNING: pip is configured with locations that require TLS/SSL, however the SSL module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the SSL certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with URL: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

我正在使用pyenv和pyenv-virtualenv,尝试在Python 3.7.0的虚拟环境中安装软件包。几天前还能正常工作,我怀疑是我更新了macOS到10.14.6导致了这个问题。

我在谷歌或StackOverflow上找不到任何解决方案。请有人帮忙解决这个问题。


尝试一下:https://dev59.com/4VgR5IYBdhLWcg3wbs2X#44758621 - Rahul Bharadwaj
这个回答解决了你的问题吗?在使用pip3安装软件包时出现“Python中的SSL模块不可用”的错误。 - Rahul Bharadwaj
不行,因为我使用pyenv安装了Python 3.7.0。pip只能与系统版本的Python一起使用。 - Dev Khadka
是的,重新安装Python有帮助,请查看我的回答。 - Dev Khadka
5个回答

24

对我来说上面的答案都没有用,任何使用pip命令都会给我同样的错误。

最终我通过以下方式使用pyenv重新安装python3,解决了这个问题。

pyenv install 3.7.0

# pyenv: /Users/devbhadurkhadka/.pyenv/versions/3.7.0 already exists
# continue with installation? (y/N) y

感谢大家的回答。


这对我也起作用了,尽管在我的情况下是Python 3.10.3。pyenv找到了我用homebrew安装的openssl,并做了必要的集成操作,这在pyenv操作期间显示的以下行中得以体现:“python-build: use openssl@1.1 from homebrew”。 - garyrob

3

安装OpenSSL,这将修复该问题。

如果您使用Anaconda,则建议使用Anaconda提示符安装软件包。


0

我认为你需要使用以下命令升级pip库:

sudo pip3 install --upgrade

然后使用以下命令安装Python3.x的SSL模块:

sudo pip3 install ssl


尝试使用 pip3 install pyopenssl 安装 Python 3.x 版本,对于 2.x 版本,请使用 pip install pyopenssl - Mayur Jotaniya

0
解决方案:安装一些能够帮助处理SSL的软件包。
sudo apt install build-essential pkg-config zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev libbz2-dev

-1
python -m pip install --upgrade pip3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接