Virtualenv: 无法在 Windows 10 上通过“pip”安装任何包,Python 中的 ssl 模块不可用

创建于 2018-02-28  ·  54评论  ·  资料来源: pypa/virtualenv

python 版本:3.6(Intel Distribution for Python for Windows 2018 update 1)
虚拟环境版本:15.1.0
windows 版本:windows 10 pro,内部版本 17101.rs4_release.180211-1040

我只执行了 2 个命令,这是 Powershell 的输出:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

这个目录Python并不是安装python的地方,它只是一个普通目录。

我试过安装一些独立的openssl,比如来自here的那个,但它们都不起作用。

最有用的评论

我遇到过同样的问题。 我正在用 python 和 jupyter 用 anaconda 配置新计算机,当我尝试使用 pip 安装包时出现问题。

基于上面的讨论,这是一个环境问题,我尝试在Anaconda Prompt而不是cmd中运行“pip install”命令。 并且执行了 pip 命令。 😁

所有54条评论

我假设使用的pip是您的virtualenv中的那个。 你的_system_ pip可以安装吗? 如果不是,这可能不是 virtualenv 问题...

@tobiasherp
系统pip是可以的,但是 virtualenv 中的pip $ 就不行了。
我不知道问题出在哪里,我什至在谷歌上都找不到类似的情况。 :(
不仅numpy ,它不能在线安装任何软件包。 但是如果有wheel文件,则可以成功安装,因此我认为问题可能与SSL有关。

对了,PyPI 现在使用 https,所以你需要 ssl 支持。 如果您的系统 Python 没有它,那么您的 virtualenv 也不会拥有它。 使用 Python 3,您应该能够导入ssl模块:

>>> import ssl

您最好的选择可能是切换到具有ssl模块的解释器。
我刚刚从https://www.python.org/下载的 3.6.4 解释器似乎支持 ssl。

AFAICS,这不是virtualenv问题; 提议关闭它。

这可能不是一个venv问题,但它仍然是一个问题。 在我的实例中,我无法在 venv 或系统 pip 中安装
我在 Win 10 64 位上安装了 IntelPython3,是的,它安装并编译了 openssl,但由于某种原因,事情不起作用

我见过这个:[(https://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878#comment-1920719)]

但我无法解决这个问题的版本。

关于这个问题的任何建议都会非常有帮助

@theCJMan你还在遇到这个问题吗?

我已经解决了这个问题

2018 年 4 月 17 日星期二 19:44 Sumana Harihareswara, notifications @github.com
写道:

@theCJMan https://github.com/theCJMan你还在经历这个吗
问题?


你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看
https://github.com/pypa/virtualenv/issues/1139#issuecomment-382081077
或使线程静音
https://github.com/notifications/unsubscribe-auth/AkTyyw5zfrJFZleItkAkrR1_kE9R-C8Cks5tpioOgaJpZM4SWUf4
.

传输层安全性或 TLS 是我们确保您的计算机和 PyPI 之间的连接是私密和安全的一部分。 它是一种加密协议,随着时间的推移有多个版本。

您需要使用 TLS 支持库(例如最新版本的 OpenSSL)连接到 PyPI。 您需要采取的具体步骤取决于您的操作系统版本、您的 Python 安装来源(python.org、您的操作系统供应商或中间分销商)以及已安装的 Python 版本setuptoolspipenvpip 。 如需帮助,请转到Freenode 上的#pypa IRC 频道,在pypa/packaging-problems/issues提交问题,或发布到 python-help 邮件列表,包括您的操作系统和安装详细信息以及pip install -vvv的输出

我也在 macos、python 2.7.15 上也遇到过这种情况——系统 python 运行良好,虚拟环境安装失败,原因是

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

我的系统 python 导入 ssl 很好,但是 venv python 给出了以下错误:

raceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/local/Cellar/python@2/2.7.15_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/ssl.py", line 126, in <module>
    from _ssl import HAS_SNI, HAS_ECDH, HAS_NPN, HAS_ALPN, HAS_TLSv1_3
ImportError: cannot import name HAS_TLSv1_3

删除 env 目录并重新创建 env 后,一切正常。

我遇到了与@liurui39660相同的问题,也使用 Intel Python Distributionpython -m venv来创建我的 venv。 这似乎是ssl pip无关:

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

请注意,只有在 venv 中使用 Intel Python 时才会触发该错误。 使用基本环境时,它可以工作:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

更新:这个线程似乎是一个线索:

Rohit J.(英特尔)周四,2017 年 7 月 6 日 - 21:40
pip 在 Windows 上无法用于 IDP 和 Miniconda。 问题的根源在于安装在系统路径中的冲突库 (libeay32.dll)。 在运行时,这个库的加载优先于我们发布的内容。 存在版本冲突,执行将失败并显示“ImportError: DLL load failed: The operating system cannot run %1.”。 从系统路径中删除这个无关的库解决了这个问题。

我在 C:\Program Files 中有 _lots_ of libeay32.dll C:\Program Files ,包括C:\ProgramData\Anaconda3\Library\bin中的一个

我尝试将C:\ProgramData\Anaconda3\Library\bin移动到PATH的前面,但仍然会发生错误。

我遇到过同样的问题。 我正在用 python 和 jupyter 用 anaconda 配置新计算机,当我尝试使用 pip 安装包时出现问题。

基于上面的讨论,这是一个环境问题,我尝试在Anaconda Prompt而不是cmd中运行“pip install”命令。 并且执行了 pip 命令。 😁

从昨天开始,在使用 Anaconda3 安装 Python 3.7.1 之后,我仍在努力追随

pip 配置了需要 TLS/SSL 的位置,但是 Python 中的 ssl 模块不可用。
连接被 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.") 中断后重试 (Retry(total=4, connect=None, read=None, redirect=None, status=None)) ':/简单/点子/
连接被 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.") 中断后重试 (Retry(total=3, connect=None, read=None, redirect=None, status=None)) ':/简单/点子/
连接被 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.") 中断后重试 (Retry(total=2, connect=None, read=None, redirect=None, status=None)) ':/简单/点子/
连接被 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.") 中断后重试 (Retry(total=1, connect=None, read=None, redirect=None, status=None)) ':/简单/点子/
连接被 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.") 中断后重试 (Retry(total=0, connect=None, read=None, redirect=None, status=None)) ':/简单/点子/
无法获取 URL https://pypi.org/simple/pip/ :确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org', port=443):最大重试次数超过 url:/simple/ pip/(由 SSLError 引起(“无法连接到 HTTPS URL,因为 SSL 模块不可用。”))- 跳过
要求已经更新:d:\anaconda3\lib\site-packages (18.1) 中的 pip
pip 配置了需要 TLS/SSL 的位置,但是 Python 中的 ssl 模块不可用。
无法获取 URL https://pypi.org/simple/pip/ :确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org', port=443):最大重试次数超过 url:/simple/ pip/(由 SSLError 引起(“无法连接到 HTTPS URL,因为 SSL 模块不可用。”))- 跳过

我有同样的问题。 使用 willliu1995 建议解决了这个问题。 从 cmd 提示符运行 pip 也没有用,但启动 jupyter notebook 并运行 !pip install工作。

如果 pip install pandas 在 CMD 提示符下不起作用,请使用 Anaconda 提示符运行它 - 它可以工作。 您可以使用以下命令找到 Anaconda 提示:

将鼠标移至 Windows 图标(左下方)并开始输入“Anaconda”。 应该显示一些匹配的条目。 选择“Anaconda 提示”。 将打开一个名为“Anaconda Prompt”的新命令窗口。 来源 - https://stackoverflow.com/questions/47914980/how-to-access-anaconda-command-prompt-in-windows-10-64-bit

如果您更喜欢使用 Windows 命令提示符,则需要将以下目录添加到您的 Windows 环境路径:
%Miniconda3_DIR%;%Miniconda3_DIR%\Library\mingw-w64\bin;%Miniconda3_DIR%\Library\usr\bin;%Miniconda3_DIR%\Library\bin;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\bin;
[其中, %Miniconda3_DIR%应替换为您的 Miniconda(或 Anaconda)安装路径]

例如,我的 Miniconda 安装在E:\Portable\Miniconda3 。 所以我的 Windows PATH 必须包含这些文件夹:
E:\Portable\Miniconda3;E:\Portable\Miniconda3\Library\mingw-w64\bin;E:\Portable\Miniconda3\Library\usr\bin;E:\Portable\Miniconda3\Library\bin;E:\Portable\Miniconda3\Scripts;E:\Portable\Miniconda3\bin;

@shriprem谢谢! 有效。 您的解决方案确认这是系统路径问题,因为通常只需将 %Miniconda3_DIR%\Scripts 添加到 PATH 变量即可使用 pip。 知道为什么这会改变吗?

@EthanBackToLife我检查了 Anaconda 提示符中的 PATH 环境变量,发现 Anaconda 将所有这些目录都添加到其提示符 PATH 变量中。 所以我将该路径的增量部分附加到 Windows PATH 变量中,以确认它适用于 pip。

在尝试在另一台 PC 上安装 Conda 时,我可以将路径更改改进为更短: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[事后看来,我们看到在我之前的帖子中添加到路径中的其他目录在全新的 Conda 安装中不存在/为空。]

通过缩小路径,我们可以查看%Miniconda3_DIR%\Library\bin文件夹。 在这里,我们找到了如下文件: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb ,我认为这些文件对于解决 pip(和 conda)包安装的 SSL/TLS 问题至关重要。

python 版本:3.6(Intel Distribution for Python for Windows 2018 update 1)
虚拟环境版本:15.1.0
windows 版本:windows 10 pro,内部版本 17101.rs4_release.180211-1040

我只执行了 2 个命令,这是 Powershell 的输出:

PS E:\Python\Virtualenv\Scripts> .\activate
(Virtualenv) PS E:\Python\Virtualenv\Scripts> pip install numpy
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Collecting numpy
  Could not fetch URL https://pypi.python.org/simple/numpy/: There was a problem confirming the ssl certificate: Can't connect to HTTPS URL because the SSL module is not available. - skipping
  Could not find a version that satisfies the requirement numpy (from versions: )
No matching distribution found for numpy

这个目录Python并不是安装python的地方,它只是一个普通目录。

我试过安装一些独立的openssl,比如来自here的那个,但它们都不起作用。

我遇到了和你一样的问题,我尝试使用命令 .\activate ,然后完美地解决了这个问题,我不能再感谢你了。

@EthanBackToLife我检查了 Anaconda 提示符中的 PATH 环境变量,发现 Anaconda 将所有这些目录都添加到其提示符 PATH 变量中。 所以我将该路径的增量部分附加到 Windows PATH 变量中,以确认它适用于 pip。

在尝试在另一台 PC 上安装 Conda 时,我可以将路径更改改进为更短: %Miniconda3_DIR%;%Miniconda3_DIR%\Scripts;%Miniconda3_DIR%\Library\bin
[事后看来,我们看到在我之前的帖子中添加到路径中的其他目录在全新的 Conda 安装中不存在/为空。]

通过缩小路径,我们可以查看%Miniconda3_DIR%\Library\bin文件夹。 在这里,我们找到了如下文件: libcrypto-1_1-x64.dll, libcrypto-1_1-x64.pdb, libssl-1_1-x64.dll, openssl.exe, libssl-1_1-x64.pdb, openssl.pdb ,我认为这些文件对于解决 pip(和 conda)包安装的 SSL/TLS 问题至关重要。

很好的解释! 谢谢你。

在做了@shriprem评论后,我仍然遇到这个问题。 Python 3.7.1 版和 pip 18.1 版,如果有帮助的话。

“我可以通过在系统环境中添加具有 libeay32.dll(在我的情况下为 ..\IntelPython3\pkgs\openssl-1.0.2l-vc14_intel_0\Library\bin)作为最高位置的 intel-python 的 dir 路径来解决这个问题。 "

参考: https ://software.intel.com/en-us/forums/intel-distribution-for-python/topic/737878

我发现使用 pip 需要在“脚本”目录中

对于 Windows 10 如果 pip install 在 CMD 提示符下不起作用,请使用 Anaconda 提示符运行它 - 它可以工作。

如果您想在普通 CMD 中使用 pip,而不仅仅是在 Anaconda 提示符下。
您需要添加 3 个环境路径。
像这些:
D:\Anaconda3;
D:\Anaconda3\脚本;
D:\Anaconda3\库\bin

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

在环境用户变量中指定路径 C:\Anaconda3\Library\bin。
或者
只需检查是否在基础 python 中安装了 openssl
如果不只是使用以下命令安装
点安装 pyopenssl

我相信路径已正确添加,但无论是在 CMD 还是在 Anaconda 提示符下,pip 仍然无法正常工作。

您是否尝试过“脚本”目录?

您是否尝试过“脚本”目录?

如果您的意思是 cd xxx/Scripts 然后 pip install,我刚才试过了,但它不起作用。

@SnarkyPapi ,您说“我相信路径添加正确。” 要确认这一事实,请运行下面以粗体列出的 4 个命令。

  1. 命令:>其中python
    输出应该类似于:_C:\Miniconda3-x64\python.exe_

  2. 命令:>其中点子
    输出应该类似于:_C:\Miniconda3-x64\Scriptspip.exe_

  3. 命令:>其中openssl
    输出应该是这样的:
    [请注意,openssl.exe 可能安装在环境路径的多个位置。 就我而言,openssl 也已作为 Perl 安装的一部分安装]
    _C:\Perl\c\bin\openssl.exe
    C:\Miniconda3-x64\Library\bin\openssl.exe_

  4. 命令:>其中 libssl-1_1-x64.dll
    输出应该类似于:_C:\Miniconda3-x64\Library\bin\libssl-1_1-x64.dll_

对于其中任何一种,如果您得到一个显示“信息:找不到给定模式的文件。”的输出,那么您的环境缺少 pip 所需的路径组件之一。

嗨,这 4 个命令运行良好,第 4 个命令显示 2 行:
C:\Windows\System32\libssl-1_1-x64.dll
C:\Anaconda\Library\bin\libssl-1_1-x64.dll

看起来你可能想把 "C:\Anaconda\Library\bin" 放在 $PATH 的开头

看起来您可能想将“C:\Anaconda\Library\bin”放在 $PATH 的开头
刚刚试了一下,问题依旧。

你能echo %PATH%

您可能已经打开一个新终端以更改 PATH

替代解决方案:我只是通过在 C:\Users\my_user_namepip 下创建一个 pip.ini 文件来使其工作,写:

[全球的]
index-url= http://pypi.douban.com/simple/
[安装]
可信主机=pypi.douban.com

它暂时解决了这个问题,但是使用这个镜像的下载速度并不是很快(大约 800kb/s)。 有没有办法让它像往常一样工作?

你能echo %PATH%

您可能已经打开一个新终端以更改 PATH

C:\Anaconda\Library\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin;D:\Software\NVIDIA GPU Computing Toolkit\CUDA\v10.0\libnvvp;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\Program Files (x86)\Razer Chroma SDK\bin;D:\Software\Razer Chroma SDK\bin;C:\windows\system32;C:\windows ;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common; D:\Software\PuTTY\;C:\windows\system32\config\systemprofile\AppData\Local\Microsoft\WindowsApps;D:\Software\dotnet\;D:\Software\MySQL\MySQL Utilities 1.6\;C:\ Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;D:\Software\Git\cmd;C:\Users\Cyrilpippip.ini;C:\Anaconda;C:\ Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;C:\Anaconda\Library\bin;C:\Anaconda;C :\Anaconda\Library\mingw-w64\bin;C:\Anaconda\Library\usr\bin;C:\Anaconda\Scripts;C:\Anaconda\bin;D:\Software\D ocker 工具箱;C:\Users\Cyrilpippip.ini;

SSL 库位于您的C:\anaconda\Library\bin文件夹中。 您必须在尝试安装库时设置该路径。 这是因为,当您激活虚拟环境时,PATH 会更改。

所以,

  • 如果您不使用虚拟环境,请手动将 PATH 设置为:
set PATH=C:\anaconda;C:\anaconda\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

  • 如果您确实使用虚拟环境,请手动将 PATH 设置为:
set PATH=C:\venvs\ve1\;C:\venvs\ve1\Scripts;C:\anaconda\Library\bin
pip  install any_library
or
pip install -r requirements.txt

请注意,C:\anaconda\Library\bin 在这两种情况下都是一致的,无论您是否在 vm 中工作。

@datatravelgit嗨,我没有使用虚拟环境,手动设置路径后仍然存在此问题。

感谢上面的有用评论! 在 Windows 10 上将以下内容添加到路径变量对我有用:
C:\用户...\Anaconda3
C:\用户...\Anaconda3\脚本
C:\Users...\Anaconda3\Library\bin

我遇到了与@liurui39660相同的问题,也使用 Intel Python Distribution _and_ python -m venv创建我的 venv。 这似乎是ssl pip无关:

(venv) C:\Users\ceefour\git\tews\ecn-svc>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\ProgramData\Anaconda3\lib\ssl.py", line 101, in <module>
    import _ssl             # if we can't import it, let the error propagate
ImportError: DLL load failed: The operating system cannot run %1.
>>>

请注意,只有在 venv 中使用 Intel Python 时才会触发该错误。 使用基本环境时,它可以工作:

(base) C:\Users\ceefour>python
Python 3.6.3 |Anaconda custom (64-bit)| (default, May  3 2018, 23:39:44) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
Intel(R) Distribution for Python is brought to you by Intel Corporation.
Please check out: https://software.intel.com/en-us/python-distribution
>>> import ssl
>>> 

更新:这个线程似乎是一个线索:

Rohit J.(英特尔)周四,2017 年 7 月 6 日 - 21:40
pip 在 Windows 上无法用于 IDP 和 Miniconda。 问题的根源在于安装在系统路径中的冲突库 (libeay32.dll)。 在运行时,这个库的加载优先于我们发布的内容。 存在版本冲突,执行将失败并显示“ImportError: DLL load failed: The operating system cannot run %1.”。 从系统路径中删除这个无关的库解决了这个问题。

我在 C:\Program Files 中有 _lots_ of libeay32.dll C:\Program Files ,包括C:\ProgramData\Anaconda3\Library\bin中的一个

我尝试将C:\ProgramData\Anaconda3\Library\bin移动到PATH的前面,但仍然会发生错误。
-------------更新:20190327
刚qq来了邮件,点进来才是这个问题,这个后来发现解决了。然后我在电脑上重新安装了Win64OpenSSL_Light-1_1_1b.exe,anaconda并卸载了个重装。现在anaconda和python都正常了。

-------------下面为旧内容谢谢,我昨天也遇到了同样的问题,然后我把Anaconda卸载后重装了,但并没有解决。执行import ssl,anaconda中的报错,另外一个不报错。如图:
GitHub Logo
我把pycharm中的路径修改了之后,pycharm也可以正常运行了。

我不得不用基本的 env dll 替换我的 envs/myenv/Library/bin 文件夹中的 libssl-1_1-x64.dll。 这不是同一个。 另外,我在 C:/Windows/System32/ 和 C:/Program Files 的某些 Intel 文件夹下还有另一个 libssl-1_1-x64.dll。 我从路径中删除了英特尔的东西,并删除了 system32 下的那个。

不确定何时复制了损坏的 dll,但用 conda/Library/bin/ 中的那个替换它效果很好。

要进一步检查错误,您可以激活您的环境并输入python -c "import ssl" 。 这是一个重要的区别,如果错误是“找不到模块”(-> 根本找不到 dll,可能是路径问题)或“找不到过程入口点”(-> 可能,找到了损坏/错误的 dll )。

我不得不用基本的 env dll 替换我的 envs/myenv/Library/bin 文件夹中的 libssl-1_1-x64.dll。 这不是同一个。 另外,我在 C:/Windows/System32/ 和 C:/Program Files 的某些 Intel 文件夹下还有另一个 libssl-1_1-x64.dll。 我从路径中删除了英特尔的东西,并删除了 system32 下的那个。

不确定何时复制了损坏的 dll,但用 conda/Library/bin/ 中的那个替换它效果很好。

要进一步检查错误,您可以激活您的环境并输入python -c "import ssl" 。 这是一个重要的区别,如果错误是“找不到模块”(-> 根本找不到 dll,可能是路径问题)或“找不到过程入口点”(-> 可能,找到了损坏/错误的 dll )。

我遇到了同样的问题-“找不到指定的程序。” - 仅在特定环境中。
在基本环境中,“import ssl”效果很好。

尝试用基本 env 的libssl-1_1-x64.dll替换 env 的 libssl -1_1-x64.dll - 但没有帮助。
是否有任何其他文件导致此问题?

为我修复,感谢大家的评论。
该问题未通过添加解决\Anaconda3\Library\bin 到路径,甚至是路径的顶部。 \Anaconda3\Scripts 和 \Anaconda3\Library\mingw-w64\bin 也是如此。

尝试用基本 env 的libssl-1_1-x64.dll替换 env 的 libssl -1_1-x64.dll - 但没有帮助。
是否有任何其他文件导致此问题?

删除 C:/Windows/System32/ 中的 libssl-1_1-x64.dll 和libcrypto-1_1-x64.dll为我解决了这个问题。

我爱你哥们!
删除 C:/Windows/System32/ 中的 libssl-1_1-x64.dll 和 libcrypto-1_1-x64.dll 为我解决了这个问题。

安装 Win64OpenSSL_Light-1_1_1b.exe https://slproweb.com/download/Win64OpenSSL_Light-1_1_1b.exe ,然后 pip 运行良好。

尝试使用:

pip3 install <package>

这个问题可以通过改变这台电脑的路径来解决
去属性
然后进入高级设置
然后是环境变量
然后是系统变量
然后路径
双击路径
检查安装的python的路径
如果你有蟒蛇
然后删除两个路径和
然后点击新建
然后复制python 3.7或最新的python til脚本的路径,即
(C:\Users\'用户名'\AppData\Local\ProgramsPythonPython37\scripts)
然后点击确定
接下来也点击新建
然后复制路径 C:\Users\'用户名'\AppData\Local\ProgramsPythonPython37
然后以管理员身份重新启动 cmd 并重试安装

有趣的是:我在 Android 上遇到了同样的问题,Termux。 由于缺少 ssl,Pip 无法连接到 pypi.org。
问题显然出在 ssl 模块上。 因此,首先检查您是否安装了任何 ssl。 如果是,请将其升级到最新版本,因为 ssl 算法发展迅速,变得不兼容。
尝试更新现有库,或安装更好的支持包。

对于 Windows 上的 Anaconda/Miniconda 用户,这是一个库加载问题。 https://conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#condahttperror -http-000-connection-failed 的疑难解答常见问题解答中有信息

正如一些用户所指出的,将 openssl 安装到 Windows\System32 文件夹中的其他安装可能非常麻烦。 在此相关故障排除部分中有关于 Anaconda(和 conda-forge)python 中的解决方法的信息: https: //conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#numpy -mkl-library-加载失败

您可以在https://github.com/continuumio/anaconda-issues报告 anaconda 问题

我在安装 pip 模块时再次出现 SSL 问题。 在此之前,pip 已经工作了几个月——在正确配置环境路径以包含 3 个 conda 文件夹之后: %Conda_DIR%;%Conda_DIR%\Scripts;%Conda_DIR%\Library\bin

经过几个小时的争论,我得出了这两种解决方案——一种用于通过pip安装模块,另一种用于通过conda安装。

通过 pip 安装模块

基本上,根据错误消息,我必须将pypi.orgfiles.pythonhosted.org站点添加为受信任的主机。

您可以通过以下方式执行此操作: pip config set global.trusted_host "pypi.org files.pythonhosted.org"
此设置更改保存在C:\Users\user_name\Appdata\Roaming\pip\pip.ini (简而言之, %APPDATA%\pip\pip.ini )文件中。 由于从 Windows 角度来看,它位于非管理员用户文件夹中,因此这样做应该是安全的。

[如果您对“全局”设置更改不满意,您可以在每个模块安装期间重复此操作。
例如: pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org -U matplotlib ]

通过 conda 安装模块

一些 Python 模块(如底图)不通过 pip 安装。 我不得不改用 conda。
要使用 conda 覆盖 SSL 错误,我必须使用: conda config --set ssl_verify false

[安装 conda 模块后,我重新打开了 ssl: conda config --set ssl_verify true ]

在今天解决这些问题时, https: //conda.io/projects/conda/en/latest/user-guide/troubleshooting.html#ssl -connection-errors 上的一般信息和安装时错误中的特定站点信息消息 - 两者都被证明是有帮助的。

嗨,当在 anaconda 提示符下,由于 TSL/SSL 问题,我无法使用 pip:

(base) C:\Users\joshu>pip install pandahouse
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

但是我可以在使用 python native 时 pip 安装我想要的任何东西:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>pip install scrapy
Collecting scrapy
  Downloading http....

到目前为止我所做的:

  1. 首先安装 Python
  2. 安装蟒蛇
  3. 重新安装蟒蛇
  4. 从 System32/ 中删除了 libcrypto-1_1-x64.dll 和 libssl-1_1-x64.dll
  5. 将我的 Anaconda 库添加到 PATH 的顶​​级系统和用户变量中
    C:\Users\joshu\Anaconda3\Library\bin
  6. 还是不行

本机 Python 中的 CMD 提示位置:

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

Anaconda 提示位置:

(base) C:\Users\joshu>where libssl-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libssl-1_1-x64.dll

(base) C:\Users\joshu>where libcrypto-1_1-x64.dll
C:\Users\joshu\Anaconda3\Library\bin\libcrypto-1_1-x64.dll

不确定这是否重要,但 OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg 出现在我的系统变量中的 PATH 上方。

有人可以帮助我不知道如何解决这个问题,并且真的更喜欢使用 Anaconda/Spyder 而不是原生 python

@jmhcodes ,查看此链接: https ://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

同样在 stackoverflow 上,我遇到了另一个与我开始在工作 PC 上遇到的 SSL 证书验证错误的突然复发更相关的讨论。 讨论链接是: https ://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

在其中几个答案中,有以下陈述:

就我而言,我公司网络中的证书是问题所在。

我最近遇到了这个问题,因为我公司的 Web 内容过滤器使用自己的证书颁发机构,以便它可以过滤 SSL 流量。

所以就我而言,是公司网络防火墙破坏了我的 pip。 但是现在添加files.pythonhosted.org & ** pypi.org作为受信任的主机已经解决了这个问题。

老实说,当我上周解决这个问题时,我还没有看到第二次 stackoverflow 讨论,并在这里发布了我的解决方案步骤。 stackoverflow 文章中的大多数回复都同意使用--trusted-host也解决了他们的点子问题。 除了上面提到的两个网站,他们还建议添加pypi.python.org

@shriprem

@jmhcodes ,查看此链接: https ://stackoverflow.com/questions/41328451/ssl-module-in-python-is-not-available-when-installing-package-with-pip3

同样在 stackoverflow 上,我遇到了另一个与我开始在工作 PC 上遇到的 SSL 证书验证错误的突然复发更相关的讨论。 讨论链接是: https ://stackoverflow.com/questions/25981703/pip-install-fails-with-connection-error-ssl-certificate-verify-failed-certi

我也看过这两个帖子,我可以将其添加为全球受信任的主机并走开,但我对此感到不舒服。

我真正想要回答的是为什么 pip 在 cmd 行中的本机 python 包中没有 SSL/TSL 问题但在 anaconda 提示符下不起作用,即使 openssl/libssl-1_1-x64.dll/libcrypto-1_1-x64 .dll 都指向同一个位置。

@jmhcodes ,在常规命令提示符和 Anaconda 提示符下运行命令where pip.exe 。 它们是否都返回相同的 pip.exe 路径?

以下是 Anaconda 提示符与常规命令提示符相比为其环境带来的一些差异:

  1. Anaconda 在常规环境路径的最前面为其子目录的 7 个前缀。 您可以通过在两个环境中运行命令echo %path%并区分它们来检查这一点。 这 7 个子目录是:
    %CONDA_DIR%; %CONDA_DIR%\Library\mingw-w64\bin; %CONDA_DIR%\Library\usr\bin; %CONDA_DIR%\Library\bin; %CONDA_DIR%\Scripts; %CONDA_DIR%\bin; %CONDA_DIR%\condabin;

_注意:%CONDA_DIR% 应该替换为您的 Anaconda 安装路径。_

  1. Anaconda 还定义了这些新的环境变量:
    CONDA_DEFAULT_ENV, CONDA_EXE, CONDA_PREFIX, CONDA_PROMPT_MODIFIER, CONDA_PYTHON_EXE, CONDA_SHLVL, PYTHONIOENCODING, PROJ_LIB, _CONDA_SET_PROJ_LIB
    您可以通过在两个环境中运行命令set并比较它们来验证这一点。

两种环境之间的这些差异可能会导致您遇到任何问题。 由你来进一步挖掘。

但是,如果 pip.exe 指向两个环境中的相同二进制文件,则您不必太担心您使用哪个环境来运行 pip。 另外,我不会太担心将众所周知的 python.org pip 站点添加为受信任的主机。 stackoverflow 上的很多人也是如此。 那是我的两分钱。

最后,您提到:

不确定这是否重要,但 OPENSSL_CONF C:\OpenSSL-Win64\bin\openssl.cfg 出现在我的系统变量中的 PATH 上方。

这是因为系统变量 OPENSSL_CONF 在按字母顺序列出时位于 PATH 之前。 因此,对于您遇到的问题应该没关系。 还是我误解了你的意思?

蟒蛇提示
pip 19.1.1 from C:\ProgramData\Anaconda3\lib\site-packages\pip (python 3.7)

命令提示符
C:\Users\joshu\AppData\Local\Programs\Python\Python37\Scripts\pip.exe

但我什至无法打开 spyder/anaconda nav 或任何与 anaconda 套件相关的东西,除了 anaconda 提示符:

(base) C:\Users\joshu>spyder.exe
Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 51, in <module>
    from urllib2 import build_opener, HTTPSHandler, Request, HTTPError
ModuleNotFoundError: No module named 'urllib2'

在处理上述异常的过程中,又出现了一个异常:

Traceback (most recent call last):
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3285, in main
    mainwindow = run_spyder(app, options, args)
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 3140, in run_spyder
    main.setup()
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\app\mainwindow.py", line 809, in setup
    from spyder.plugins.console import Console
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\plugins\console.py", line 37, in <module>
    from spyder.widgets.reporterror import SpyderErrorDialog
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\reporterror.py", line 26, in <module>
    from spyder.widgets.github.backend import GithubBackend
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\widgets\github\backend.py", line 33, in <module>
    from spyder.utils.external import github
  File "C:\ProgramData\Anaconda3\lib\site-packages\spyder\utils\external\github.py", line 58, in <module>
    from urllib.request import build_opener, HTTPSHandler, HTTPError, Request
ImportError: cannot import name 'HTTPSHandler' from 'urllib.request' (C:\ProgramData\Anaconda3\lib\urllib\request.py)

我使用 Visual Studio Code,我遇到了同样的问题,因为我执行的 conda virtual env 不是活动的

imagen

此页面是否有帮助?
0 / 5 - 0 等级