pip 配置了需要 TLS/SSL 的位置,但 Python 中的 ssl 模块不可用
- 2024-12-19 09:23:00
- admin 原创
- 85
问题描述:
我正在使用 Python 3.6。当我尝试使用 安装“模块”时pip3
,我遇到了这个问题:
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available
解决方案 1:
对于 Windows 10,如果您想在普通 cmd 中使用 pip,而不仅仅是在 Anaconda 提示符中。您需要添加 3 个环境路径。如下所示:
D:Anaconda3
D:Anaconda3Scripts
D:Anaconda3Libraryin
大多数人只添加 D:\Anaconda3\Scripts
解决方案 2:
苹果操作系统
我在 Mac OS(Mojave)上遇到了同样的问题,并解决了此链接中提到的问题 - Openssl 问题。
如果你没有 Homebrew 或者不知道什么是 Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
或者如果你已经安装了 Homebrew:
brew update && brew upgrade
brew uninstall --ignore-dependencies openssl; brew install https://github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb
更新:请记住,我必须使用--ignore-dependencies
标志,因为安装的其他软件包依赖于 OpenSSL。
此外,如果问题是使用pyenv后引起的,你可以使用以下方法修复它:
brew reinstall python
解决方案 3:
对于 Debian 用户,以下内容可能会有用:
sudo apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.6 libgdm-dev libdb4o-cil-dev libpcap-dev
然后 cd 到包含 Python 3.X 库源代码的文件夹并运行:
./configure
make
sudo make install
解决方案 4:
我正在使用 Windows 10,并安装了带有 Python 3.7 的 Miniconda 3。
我按照这个https://github.com/conda/conda/issues/8273解决了这个错误
具体来说,我将以下文件从 复制C:Users<user>Miniconda3Libraryin
到C:Users<user>Miniconda3DLLs
:
libcrypto-1_1-x64.dll
libcrypto-1_1-x64.pdb
libssl-1_1-x64.dll
libssl-1_1-x64.pdb
如果你在某个环境中工作,那么它将是从C:Users<user>Miniconda3envs<name>Libraryin
到C:Users<user>Miniconda3envs<name>DLLs
:
解决方案 5:
对于 centos 7:
安装 openssl:
sudo yum install openssl-devel
现在进入我们解压 python tar 的 python 目录,
运行以下命令
sudo ./configure
sudo make
sudo make install
这将修复 centos 中的问题......
解决方案 6:
macOS,pyenv
如果你的 python 是已pyenv
安装的,其中 pyenv 是在 macOS 上使用 homebrew 安装的,那么可能有较新的版本可用来修复此问题:
$ brew update && brew upgrade pyenv
然后重新安装python版本:
$ pyenv install 3.7.2
pyenv: /Users/luckydonald/.pyenv/versions/3.7.2 already exists
continue with installation? (y/N)
注意,这样覆盖现有的 Python 安装有点不妥,但就我而言,这样做确实有效。删除它然后重新正确创建它可能更干净。
解决方案 7:
对于尝试解决此问题的未来 Oracle Linux 用户,以下是对我有用的方法。首先安装缺少的库:
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel
readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
然后 cd 到你的 Python3.X 库并运行:
make
make install
解决方案 8:
对我有用。
sudo apt-get install libssl-dev
使用它来为 pip 启用 SSL。如果有人遇到问题,请告诉我。
解决方案 9:
对于 Windows 10、Windows 7,如果 pip install 在 CMD 提示符下不起作用,请使用 Anaconda 提示符运行它 - 它可以起作用。
https://github.com/pypa/virtualenv/issues/1139
解决方案 10:
在 ubuntu 上从源代码安装 python 3.8 时遇到了这个问题。成功安装它以及默认的 python 3.7 所需的步骤总结如下:
sudo apt -y install libssl-dev zlib1g-dev build-essential
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz
tar -xf Python-3.8.0.tgz
cd Python-3.8.0/
./configure --enable-optimizations
make
sudo make altinstall
zlib1g-dev和build-essential的安装说明是多余的,因为 ubuntu 桌面已经有了这些,但对于一些 Amazon 的 EC2 实例来说是必需的。python 3.8.0 是当前的版本,但应该用最新版本替换。
这些说明最适合将 python 3.7 保留为 python3 的默认设置,并在虚拟环境中运行 python 3.8。
解决方案 11:
与上述解决方案类似,使用 pyenv 重新安装 python 版本。
不知何故,我升级了我的openssl
,这破坏了 pyenv 版本的 python。
pyenv install 3.6.8
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
...
第一行说它依赖于自制的 openssl。
解决方案 12:
对于 OpenSUSE 以相同的方式,但对上面列出的软件包进行了一些更改:
zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel
然后cd
到 Python 源目录和
make
make install
或者
make
make altinstall
也许
ln -s /usr/local/lib64/python3.6/lib-dynload/ /usr/local/lib/python3.6/lib-dynload
OpenSUSE 用户应执行此操作。请参阅Python 3.7 安装无法在 openSUSE Leap 42.3 上运行
解决方案 13:
就我而言,我重新安装了 Python。它解决了这个问题。
brew reinstall python
解决方案 14:
尝试通过 Anaconda prompt 安装
解决方案 15:
我在使用 Visual Studio Code 从 VS Code 提示符安装 pylint 时遇到了这个问题。我通过打开 Anaconda 安装目录并运行来解决这个问题
pip install pylint
然后 VS Code 就好了,但这并没有解决问题,因为运行
& C:/Users/happy/Anaconda3/python.exe -m pip install -U pylint
几乎给出了相同的错误,因此看来 VS Code 无法访问 python 模块。
请注意,VS Code 会选择安装时看到的第一个 python 环境,屏幕左下角会显示正在使用哪个环境。单击该区域可以设置环境。因此,即使您为某个环境运行了 pip install,VS Code 也可能会看到另一个环境。
最好的方法是确保 VS 代码选择了正确的 python 环境,并且相同的环境位于系统 PATH 中(在系统属性 --> 高级 --> 环境变量下)
在路径变量下,编辑并浏览到您希望 VSCode 使用的特定 Anaconda 目录并添加到 PATH,我需要添加以下内容:
C:UsershappyAnaconda3\nC:UsershappyAnaconda3Scripts\nC:UsershappyAnaconda3Libraryin\nC:UsershappyAnaconda3Librarymingw-w64in\n
您的 Anaconda 安装目录可能有所不同。需要注意的是,Windows 的 PATH 变量只有在您重新启动终端后才会生效。在这种情况下,请关闭并重新运行 VS 代码。如果使用终端或 PS Shell,请关闭并重新打开,并检查路径以确保其已包含在内。
解决方案 16:
问题可能出在你安装的 openssl 软件包版本上。我就是这种情况,我通过升级解决了这个问题。我在 Mac OS 上使用 brew :
brew upgrade openssl
如果你使用 brew 安装了 python,这应该可以直接解决问题,因为 python 依赖于 openssl
解决方案 17:
最新的 Python 3.8.4 或更高版本应该能够开箱即用地支持 https 协议。如果您的电脑上仍有旧的 Python 安装 - 请手动下载并安装 Python3,或使用 Chocolatey:
如果你没有 Chocolatey,请从这里安装:https: //chocolatey.org/docs/installation
您可以复制粘贴一个命令行并以提升的权限从命令提示符执行它。
choco install python3
如果你没有安装 python3,或者你已经安装了它--那么:
choco upgrade python3
还要注意,您也可以使用 anaconda 发行版,因为它具有内置的 python 和 https 支持,但是这是相当古老的说明,不再需要遵循它们。
使用命令行安装 anaconda:
choco install anaconda3
设置环境变量:
set PATH=C: oolsAnaconda3Scripts;C: oolsAnaconda3;C: oolsAnaconda3Libraryin;%PATH%
然后运行失败的命令。在我的例子中,它是:
pip install conan
Anaconda 使用单独的 python 安装,并且 pip 也是 anaconda 专用的。
解决方案 18:
对我有用。
pkg install openssl
使用此功能来启用 ssl。
解决方案 19:
如果有人使用 Arch Linux 操作系统,我通过运行以下命令解决了 TLS/SSL 问题:
sudo pacman -S openssl
然后我可以使用 pip 来安装我需要的包:
pip install openpyxl
解决方案 20:
转到 Anaconda 提示符并输入(如果您的引擎上安装了 python 3.x):
py -m pip install pymysql
我遇到了同样的问题,这解决了我的问题。完成此操作后,您可以在 power shell 或任何其他提示中导入 pymysql。
解决方案 21:
正如 Tokci 所说,它也适用于 Windows 7。
“用鼠标移到 Windows 图标(左下角)并开始输入“Anaconda”。应该会显示一些匹配的条目。选择“Anaconda Prompt”。将打开一个名为“Anaconda Prompt”的新命令窗口。”
然后 pip 就可以工作了。
以下内容也有助于导入 xgboost:
https://www.youtube.com/watch?v= 05djBSOs1FA
解决方案 22:
当我们从源代码编译 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 线程。您可以通过运行来检查 CPU 有多少个线程nproc
解决方案 23:
该问题是由于您的电脑上缺少 OpenSSL 包造成的。
如果 pip install openpyxl
还出现错误。
您可以通过从以下站点安装 OpenSSL(Win64 OpenSSL v1.1.1g)来解决此问题:
slproweb.com/products/Win32OpenSSL.html
重新启动您正在使用的 IDE,以使更改生效。
解决方案 24:
在 Windows 10 SQL Server 19 中解决方案是已知的。
复制以下文件:
libssl-1_1-x64.dll
libcrypto-1_1-x64.dll
从文件夹
C:\Program 文件\Microsoft SQL 服务器\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\Library\bin
到文件夹
C:\Program Files\Microsoft SQL Server\MSSSQL15.MSSQLSERVER\PYTHON_SERVICES\DLLs
然后打开一个新的 DOS 命令 shell 提示符。
解决方案 25:
在 macOSX 上,我升级自制软件包后遇到了这个问题。openssl
从 升级openssl1.1
到openssl@3
。
解决方案是删除 openssl@3,并使用 homebrew安装openssl@1.1 :
brew remove openssl@3
brew install openssl@1.1
解决方案 26:
目前,Windows 10 上的 Anaconda prompt(Anaconda3)存在同样的问题。解决方法如下:https://github.com/ContinuumIO/anaconda-issues/issues/10576
解决方案 27:
修复了此问题,无需更改与 TSL/SSL 相关的任何内容。
我试图查看是否发生了同样的事情pip
,结果发现它pip
坏了。经过一番挖掘,我意识到这可能是由于 Homebrewpython@2
在 2020 年 2 月 1 日被删除造成的。
运行brew uninstall python@2
删除Homebrew安装的python2。
销毁了使用创建的虚拟环境python3
并创建一个新的虚拟环境。 pip3
安装再次正常进行。
解决方案 28:
我在 macOS 上并且曾经使用过 brew 但是 Vaulstein 在他的回答中提到的内容并不适用于我的情况。
我运行以下命令来确保我当前的 python 不是由 brew 安装的
brew list | grep python
python
python@2
brew info python
python@3.8: stable 3.8.3 (bottled)
Interpreted, interactive, object-oriented programming language
https://www.python.org/
Not installed
...
因此我从https://www.python.org/下载了最新的 3.8.5 ,并在安装时看到以下信息
证书验证和 OpenSSL
此软件包包含其自己的 OpenSSL 1.1.1 私有副本。由
Keychain Access应用程序和安全命令行实用程序管理的系统和用户钥匙串中的信任证书不会被 Python ssl 模块用作默认证书
安装 3.8.5 后,问题得到解决。
解决方案 29:
我在使用 Ubuntu、pyenv 和由 pyenv 管理的 Python 3.8.1 时遇到了这个问题。实际上没有办法让 pip 正常工作,因为每次我尝试安装任何东西(包括 pip 本身)时,都会出现相同的错误。最终的解决方案是通过 pyenv 安装较新的版本,在本例中为 3.8.6。显然,从 3.8.4 开始,Python 就可以开箱即用地运行 SSL/TLS,因此一切正常。
解决方案 30:
我简单地用以下命令解决了该问题:
brew 升级python@3.9
此版本默认包含 SSL!
- 2024年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
- 项目管理必备:盘点2024年13款好用的项目管理软件