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 ...

问题描述:

我正在使用 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 问题。

  1. 如果你没有 Homebrew 或者不知道什么是 Homebrew:

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 或者如果你已经安装了 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>Miniconda3LibraryinC: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>LibraryinC: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-devbuild-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 提示符。

来自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

解决方案 25:

在 macOSX 上,我升级自制软件包后遇到了这个问题。
openssl从 升级openssl1.1openssl@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!

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   990  
  在项目管理领域,CDCP(Certified Data Center Professional)认证评审是一个至关重要的环节,它不仅验证了项目团队的专业能力,还直接关系到项目的成功与否。在这一评审过程中,沟通技巧的运用至关重要。有效的沟通不仅能够确保信息的准确传递,还能增强团队协作,提升评审效率。本文将深入探讨CDCP...
华为IPD流程   26  
  IPD(Integrated Product Development,集成产品开发)是一种以客户需求为核心、跨部门协同的产品开发模式,旨在通过高效的资源整合和流程优化,提升产品开发的成功率和市场竞争力。在IPD培训课程中,掌握关键成功因素是确保团队能够有效实施这一模式的核心。以下将从五个关键成功因素展开讨论,帮助企业和...
IPD项目流程图   27  
  华为IPD(Integrated Product Development,集成产品开发)流程是华为公司在其全球化进程中逐步构建和完善的一套高效产品开发管理体系。这一流程不仅帮助华为在技术创新和产品交付上实现了质的飞跃,还为其在全球市场中赢得了显著的竞争优势。IPD的核心在于通过跨部门协作、阶段性评审和市场需求驱动,确保...
华为IPD   26  
  华为作为全球领先的通信技术解决方案提供商,其成功的背后离不开一套成熟的管理体系——集成产品开发(IPD)。IPD不仅是一种产品开发流程,更是一种系统化的管理思想,它通过跨职能团队的协作、阶段评审机制和市场需求驱动的开发模式,帮助华为在全球市场中脱颖而出。从最初的国内市场到如今的全球化布局,华为的IPD体系在多个领域展现...
IPD管理流程   53  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用