pip已配置需要TLS/SSL的位置,但Python中的ssl模块不可用。

477

我正在使用Python 3.6。当我尝试使用pip3安装“模块”时,我遇到了这个问题:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available

4
如果是OS X操作系统:https://dev59.com/aVsW5IYBdhLWcg3wM0yF - ZiTAL
3
操作系统是Oracle Linux 7.x。 - Santosh Kumar G
2
你是否从软件包管理器中安装了pip?如果你是通过编译安装的,那么请先安装libssl-dev或者通过pip安装ssl pip install ssl https://dev59.com/3FgR5IYBdhLWcg3woebW - ZiTAL
74
由于“ssl”的原因,“pip”无法正常工作,你需要使用pip安装“ssl” :) - ramazan polat
3
有没有不需要重新编译或重新安装 Python 的解决方案? - matanster
显示剩余5条评论
44个回答

3
如Tokci所说,这也适用于Windows 7。
“将鼠标移到Windows图标(左下方),然后开始键入“Anaconda”。应该会显示一些匹配的条目。选择“Anaconda Prompt”。一个名为“Anaconda Prompt”的新命令窗口将打开。”
然后pip就可以使用了。
以下内容也有助于导入xgboost: https://www.youtube.com/watch?v=05djBSOs1FA

寻找Linux等效版本...但是,为什么这样做可以工作,而使用命令行中的pip却不行呢?只有在之前已经重建了Anaconda的Python并安装了SSL时,这才有意义。 - matanster
我不知道为什么,但你说的听起来很有道理。 - Ayan Omarov

2
在Windows 10 SQL Server 19中,已知解决方案。
请复制以下文件:
  • libssl-1_1-x64.dll
  • libcrypto-1_1-x64.dll
从文件夹
C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\Library\bin
到文件夹
C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\DLLs
然后打开一个新的DOS命令提示符。
来源于https://learn.microsoft.com/en-us/sql/machine-learning/troubleshooting/known-issues-for-sql-server-machine-learning-services?view=sql-server-ver15#7-unable-to-install-python-packages-using-pip-after-installing-sql-server-2019-on-windows

2
问题是由于您的电脑上缺少OpenSSL软件包引起的。
如果pip install openpyxl也出现错误。
您可以通过从以下网站安装OpenSSL(Win64 OpenSSL v1.1.1g)来解决此问题:
slproweb.com/products/Win32OpenSSL.html

重新启动您正在使用的IDE,以使更改生效。


2

当我们编译Python源代码时,如果没有安装某些帮助SSL的软件包,就会出现此问题。下面是在基于Debian的Linux系统中修复此问题的方法。

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
./configure --enable-optimizations
make -j 4 
sudo make altinstall

注意,-j 4 指定我想要使用 4 个 CPU 线程。您可以通过运行 nproc 来检查您的 CPU 有多少个线程。


1

无需更改与TSL/SSL相关的任何内容即可解决此问题。

我试图查看是否发生了同样的事情,pip也出现了问题。经过一番调查,我意识到这可能是由于Homebrew在2020年2月1日删除了python@2导致的。

运行brew uninstall python@2以删除Homebrew安装的python2。

销毁使用python3创建的虚拟环境并创建一个新的虚拟环境。
pip3的安装再次正常工作。


3
对我来说,切换到较旧的 openssl 版本可解决问题:brew switch openssl 1.0.2t我在 Mac OS Catalina 10.15.3 上。希望能有所帮助。 - WinkyCharlie

1

1
我只是通过以下命令简单地解决了问题: brew upgrade python@3.9 SSL 在这个版本中已经默认包含了!

1
我在使用Ubuntu、pyenv和由pyenv管理的Python 3.8.1时遇到了问题。实际上,没有办法使pip正常工作,因为每次我尝试安装任何东西,包括pip本身,都会出现相同的错误。 最终的解决方案是通过pyenv安装一个更新的版本,这里是3.8.6。显然,从3.8.4开始,Python已经准备好直接运行SSL/TLS,所以一切都可以正常工作。

1
如果您通过scoop安装了anaconda,并在conda环境中使用pip时遇到此错误,您可以通过以下方式解决:
  1. 将以下内容添加到您的路径中
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Scripts
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library
C:\Users\YOUR_USERNAME\scoop\apps\anaconda3\current\Library\bin
  1. 通过scoop安装openssl
scoop install openssl
  1. 将以下DLL从..\anaconda3\Library\bin复制到..\anaconda3\DLLs

参考资料:


1
在我的情况下,我在Linux上遇到了$PATH问题。这也可能发生在MacOS上。
检查是否可以/usr/bin/pip3 install package_name_goes_here,如果可以,则运行which pip3,这将告诉您pip3安装的第一个目录是哪个。
如果是/usr/local/bin/pip3之类的目录,与/usr/bin/pip3不同,则可能需要调整$PATH。
运行echo $PATH并复制结果。
PATH只是包含目录的冒号分隔列表。Bash将始终返回您尝试执行的程序的第一个实例。将所有系统目录移至前面。以下是一些系统目录的列表:
/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin

如果失败,请验证您是否安装了openssl,方法是运行openssl version -a,如果没有安装,请安装openssl。

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