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


209

我正在使用Python3.6,当我尝试使用来安装“模块”时pip3,我遇到了以下问题“ pip配置了需要TLS / SSL的位置,但是Python中的ssl模块不可用”


1
操作系统?
ZiTAL


1
操作系统是oracle linux 7.x
Santosh Kumar G

1
您是否从软件包管理器安装了pip?如果你安装了编译,首先安装libssl-dev或从PIP安装SSL pip install ssl stackoverflow.com/questions/41098252/...
ZiTAL

37
@ZiTAL pip无法正常工作ssl,因为您要求ssl使用pip 进行安装:)
Ramazan Polat

Answers:


190

对于Windows 10,如果要在普通cmd中使用pip,不仅要在Anaconda提示符下使用pip。您需要添加3条环境路径。类似于以下内容:

D:\Anaconda3; 
D:\Anaconda3\Scripts; 
D:\Anaconda3\Library\bin 

大多数人只添加D:\ Anaconda3 \ Scripts;


1
谢谢,我添加了D:\ Anaconda3 \ Library \ bin,它通过libssl-1_1-x64.dll位于该文件夹中而起作用。(win10x64,python 3.7)
Apet

当您在路径中添加这三个时,请关闭cmd,然后重试该命令。
user3568896 '11

您所说的环境路径是什么意思?您是指PATH环境变量吗?再加上我的D盘中没有这些文件夹,我应该在安装Anaconda时创建这些文件夹吗?
阿米特·拉兹

也适用于Windows 8.1
Antoine

1
如果一个人不使用Anaconda,这将不起作用。我在OSGeo4W64和QGIS 3.10.2安装中遇到了此问题。添加我收集的是PATH变量的正确路径并不能解决问题(例如:)C:\Program Files\QGIS 3.10\apps\Python37\Scripts
CNIDog

178

苹果系统

我在Mac OS(Mojave)上遇到了相同的问题,并解决了此链接-Openssl问题所提到的问题

  1. 如果您没有自制软件或不知道什么是自制软件:

    / usr / bin / ruby​​ -e“ $(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”

  2. 或者,如果您已经安装了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-dependenciesflag,因为安装了其他依赖于OpenSSL的软件包。

如果问题是在使用pyenv之后引起的,则可以使用以下方法解决此问题:

brew reinstall python

5
安装另一个Python 版本后,pip损坏了。该解决方案帮助我修复了问题。
iMitwe

15
为什么还要添加github.com/tebelorg/Tump/releases/download/v1.0.0/openssl.rb作为依赖项?:)我认为应该删除它,因为它完全不相关并且可能不安全
Mark

1
我了解这可能会带来安全风险,但是所有用户都要求通过官方软件包链接使用该软件包-github.com/kelaberetiv/TagUI/issues/635
Vaulstein

1
@Vaulstein现在您提到它。我想我也用brew安装了一些软件包。是gpg
沉迷

2
从升级Mojave到后Catalina,我点击了。我只需要brew update && brew upgrade它再次工作即可。谢谢你的建议!
rustyMagnet

35

对于Debian用户,可以使用以下内容:

sudo -s

apt install libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev libtk8.5 libgdm-dev libdb4o-cil-dev libpcap-dev

然后cd到包含Python 3.X库源代码的文件夹并运行:

./configure
make
make install

@MehmetKurtipek,我编辑了答案以阐明步骤。如果仍然没有帮助,请说明您的问题
拉斐尔乙

5
事实证明,Python3.7与Ubuntu 14.04及更早版本一起存在不错的问题。Python3.7所需的最低SSL软件包与旧版ubuntus不兼容。因此,感谢您的编辑:)
Mehmet Kurtipek '19

@MehmetKurtipek我的服务器是1404。那么什么版本的python没有这个问题呢?我的python 3.7.4存在相同的问题...
报价不能拒绝

@MehmetKurtipek您是否无需升级系统即可解决此问题?我也在14.04上工作
报价不能拒绝

使用mint19和python 3.8,这解决了我的问题
5uperdan

21

对于将来尝试解决此问题的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 

1
这个答案对我的CentOS解决的问题以及7
马克斯

这些库是什么?为什么需要它们?
Mohit Motwani

通过互联网进行安全连接需
要这样做


20

对于centos 7:

安装openssl:

sudo yum install openssl-devel

现在转到python目录,我们提取了python tar,

运行以下命令

sudo ./configure
sudo make
sudo make install

这将以centos解决此问题...


10

对于Windows 10和Windows 7如果在CMD提示符下无法进行pip安装,请使用Anaconda提示符运行它-可以。

https://github.com/pypa/virtualenv/issues/1139


6
我知道正确的答案,如果您想在普通cmd中使用pip,而不是Anaconda提示,则需要添加3个环境路径:像这样:D:\ Anaconda3; D:\ Anaconda3 \脚本; D:\ Anaconda3 \ Library \ bin现在仅脚本!
无名小路

6

如果您的python是已pyenv安装的python ,而pyenv是在macOS上通过自制软件安装的,则可能有更新的版本可以解决此问题:

$ 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安装有点脏,但是在我看来,它确实可以解决。


5

对于OpenSUSE,使用相同的方式,但对上面列出的软件包进行了一些更改:

zypper install zlib-devel libopenssl-devel ncurses-devel sqlite3-devel readline-devel tk-devel gdbm-devel libpcap-devel xz-devel

然后cd到Python源dir和

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



4

为我工作。

apt-get install libssl-dev

使用此功能为点启用ssl。让我知道是否有人遇到问题。


4

与上述解决方案类似,使用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。


3

我在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 env,屏幕左下方指示正在使用哪个env。单击该区域可以设置环境。因此,即使您为某个环境运行了pip安装,VS Code也可能会选择另一种。

最好的方法是确保VS代码选择了正确的python环境,并且系统PATH中有相同的环境(在“系统属性->高级->环境变量”下)

在“路径变量”下,编辑并浏览到要VSCode使用并添加到PATH的特定Anaconda目录,我需要添加以下内容:

C:\Users\happy\Anaconda3\
C:\Users\happy\Anaconda3\Scripts\
C:\Users\happy\Anaconda3\Library\bin\
C:\Users\happy\Anaconda3\Library\mingw-w64\bin\

您的Anaconda安装目录可能不同。请注意,直到重新启动终端后,Windows的PATH变量才会生效。在这种情况下,请关闭并重新操作VS代码。如果使用终端机或PS Shell,请关闭然后重新打开,并检查Path以确保其中已包含该产品。


3

我正在使用Windows 10并将Miniconda 3与Python 3.7一起安装。

我通过遵循此https://github.com/conda/conda/issues/8273解决了此错误

具体来说,我将以下文件从复制C:\Users\MyUser\Miniconda3\Library\binC:\Users\MyUser\Miniconda3\DLLs

  • libcrypto-1_1-x64.dll
  • libcrypto-1_1-x64.pdb
  • libssl-1_1-x64.dll
  • libssl-1_1-x64.pdb


2

如果您没有Chocolatey,请从这里安装:https : //chocolatey.org/docs/installation

您可以只复制粘贴一个命令行衬里,然后在特权较高的命令提示符下执行它。

使用命令行安装anaconda:

choco install anaconda3

设置环境变量:

set PATH=C:\tools\Anaconda3\Scripts;C:\tools\Anaconda3;C:\tools\Anaconda3\Library\bin;%PATH%

然后运行失败的命令。以我为例:

pip install conan

Anaconda使用单独的python安装,并且pip也是anaconda特定的。


1

正如Tokci所说,它也适用于Windows 7。

“用鼠标转到Windows图标(左下),然后开始键入“ Anaconda”。应该会显示一些匹配的条目。选择“ Anaconda Prompt”。将打开一个名为“ Anaconda Prompt”的新命令窗口。“

然后点子的作品。

以下内容也有助于导入xgboost:https : //www.youtube.com/watch? v = 05djBSOs1FA


寻找与Linux相当的东西...但是无论如何,为什么这行得通,并且不能从命令行使用pip呢?仅当您已预先使用SSL重建anaconda的python时,这才有意义。
matanster '19

我不知道为什么,但是你说的听起来很合理
Ayan Omarov

1

如果有人使用Arch Linux操作系统,我可以通过运行以下命令解决TLS / SSL问题:

sudo pacman -S openssl

然后,我可以使用pip安装所需的软件包:

pip install openpyxl

1

转到Anaconda提示符并键入(如果您的引擎上安装了python 3.x):

py -m pip install pymysql 

我有同样的问题,这解决了我的问题。之后,您可以在Power Shell或任何其他提示中导入pymysql。


1

在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。


1

该问题是由于您的PC上缺少OpenSSL软件包所致。

如果 pip install openpyxl还给出错误。

您可以通过从以下站点安装OpenSSL(Win64 OpenSSL v1.1.1g)来解决此问题:

slproweb.com/products/Win32OpenSSL.html

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


0

我遇到了这个问题!我不小心安装了Miniconda3的32位版本。确保选择64位版本!


0

这对我有用:

yum install python36-pyOpenSSL 

python版本和软件包管理器可能有所不同。



0

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

我试图查看是否发生了相同的事情pip,并且发现该问题pip已损坏。进行了一些挖掘并意识到这可能是由python@22020年2月1日删除的Homebrew引起的。

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

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


2
对我来说,切换到旧版本的 work opensslbrew switch openssl 1.0.2t我在Mac OS Catalina 10.15.3上。希望能帮助到你。
viraj.kulkarni

-1

这是默认ssl设置的问题。您必须下载Python3并将路径添加到系统中。如果您使用Pycharm,请将解释器设置为python3路径。然后,您可以正常使用pip3而不会出现错误。


-1

该问题可能来自您安装的openssl软件包版本。对我来说就是这种情况,我只是通过升级解决了这个问题。我在Mac OS上,使用brew:

brew upgrade openssl

如果您在brew中安装了python,则应该直接解决该问题,因为python依赖于openssl


-1

您可以从Anaconda Prompt尝试。

您将看到(基本),现在升级点数。例:

(base) C:\Users\Tom>cd ..

(base) C:\Users>cd ..

(base) C:\>python -m pip install --upgrade pip
Requirement already up-to-date: pip in g:\anaconda3\lib\site-packages (20.0.2)

(base) C:\>pip -V
pip 20.0.2 from G:\Anaconda3\lib\site-packages\pip (python 3.7)

# Try install
(base) C:\>pip install selenium

这将花费较长的时间,但也会安装或升级Anaconda内部使用的SSL库。继续去这里


此答案假定在Windows上使用conda,而不是在OP上在Linux上使用香草python
hrbdg
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.