请求(由 SSLError 引起(“由于 SSL 模块不可用,无法连接到 HTTPS URL”) PyCharm 请求网站中的错误

通过 Pycharm 在 Python 3 Windows 中使用请求,并接收 SSL 模块不可用错误

我花了好几个小时想找出原因。我重新安装了水蟒,我完全卡住了。运行以下命令时

def Earlybird(daycount):
url = 'https://msft.com'
response = requests.get(url)
print(response)
Earlybird()

我收到了错误

requests.exceptions.SSLError: HTTPSConnectionPool(host='msft.com',
port=443): Max retries exceeded with url: / (Caused by SSLError("Can't
connect to HTTPS URL because the SSL module is not available."))

我不知道是什么引起的。因为 Anaconda 是最近才安装的,所以我假设所有东西都是最新的,所以我不确定这是否指向了错误的 SSL?我对巨蟒还是个新手,所以谢谢你的耐心等待。-

244593 次浏览

去网站: 给我下面的信息,从开发工具和看头。(右击-> 检查。然后打开网络选项卡并检查标题)

  • 请求 URL: http://www.msft.com/
  • 请求方法: GET
  • 状态代码: 200 OK
  • 远程地址: 205.178.189.130:80
  • 引用者政策: 降级时不引用

因此,我们看到需要对 HTTP 而不是 HTTPS 执行请求。

import requests




def Earlybird():
url = 'http://msft.com/'
response = requests.get(url)
print(response.text)


if __name__ == '__main__':
Earlybird()

我通过安装 OpenSSL 解决了这个问题,根据以下建议: https://github.com/conda/conda/issues/8046#issuecomment-450515815

Conda 存储库中的对应票据: https://github.com/conda/conda/issues/8046

更新: 这个问题(在 PyCharm 中)应该在2019.1版本中得到解决(早期访问预览版本已经可用了 https://www.jetbrains.com/pycharm/nextversion/)。

我在 Windows10上使用 Conda 和 Python2.7.2时也遇到过类似的问题

After trying many, many solutions I came across 这种反应 which suggested that there is an issue with openssl in that build.

在我将 python 降级到3.7.1(构建 h33f27b4 _ 4)之后,一切都工作正常。

不知道这个问题是否已经解决了,但是我在使用 Anacondapython3.7.3和 Windows10上的 Idle 时遇到了类似的问题。通过添加:

<path>\Anaconda3
<path>\Anaconda3\scripts
<path>\Anaconda3\Library\bin

到 PATH 变量。

Windows 用户需要设置如下路径:

  • ..\Anaconda3
  • ..\Anaconda3\scripts
  • ..\Anaconda3\Library\bin

每位使用者:

  1. 打开环境变量
  2. Click User Variable
  3. 如果已经打开,则关闭命令提示符并重新打开它

系统范围 (需要重新启动) < strong > :

  1. 打开环境变量
  2. System Variable
  3. 重启视窗

如果使用 蟒蛇提示。,则不需要向环境添加路径

启动 Anaconda 提示符到您的目录并运行您的脚本或从那里启动您的编辑器。这将确保您处于完整的 Anaconda 环境中,并且 SSL 错误将停止。

Whats the difference between command prompt and Anaconda Prompt? 看看这个对 命令提示符和蟒蛇提示符的区别是什么的回答。

注意: 这个问题已经在 windows 10上修复了 我在 Windows10上的虚拟环境也遇到了同样的问题。 Issue was solved with running CMD as administrator and creating new virtual environment.

  • 以管理员身份运行 cmd
  • create virtual environment (virtualenv .venv )
  • activate virtual environment . venv 脚本激活
  • Pip 安装请求

通过在我的 windows 10中执行以下操作解决了这个问题:

mklink "C:\Users\hal\AppData\Local\Continuum\anaconda3\DLLs\libssl-1_1-x64.dll" "C:\Users\hal\AppData\Local\Continuum\anaconda3\Library\bin\libssl-1_1-x64.dll"


mklink "C:\ProgramData\Anaconda3\DLLs\libcrypto-1_1-x64.dll" "C:\ProgramData\Anaconda3\Library\bin\libcrypto-1_1-x64.dll"

我使用 VSCode 来编辑和调试,唯一适合我的解决方案是在窗口中编辑环境变量。.显然这会引起问题,但我不确定是什么问题。

从 Anaconda 提示中运行(正如 Sayth 所建议的那样)对我来说不是一个选择。或者也许建议运行水蟒提示符,然后从水蟒提示符以某种方式启动 VSCode。听起来不像是个合理的要求。

这似乎是一个长期存在的慢性问题,没有一个适用于所有人的明确的全球性答案。

我没有水蟒,所以我采取的步骤是:

  • brew uninstall python3
    • 得到一个错误消息声明,Your Xcode (10.2) is too outdated. Please update to Xcode 11.3 (or delete it). Xcode can be updated from the App Store. * * 所以,我删除了 Xcode,因为没有更新会显示,然后我重新安装它。
    • 运行 xcode-select --install之后。如果你不. . 你会得到一个错误: The following formula python cannot be installed as binary package and must be built from source. Install the Command Line Tools: xcode-select --install
  • 运行 brew install python3并成功完成。

使用这个脚本只是为了看看它是否工作

import requests
r = requests.get('https://www.office.com')
print(r)

运行脚本 python3和 python3.7,输出为 <Response [200]>而不是 SSLError。

在花了几个小时浏览 Anaconda 文档、 Github 发行票据等之后,我终于设法让它在 Windows 1064位(Anaconda 3.7)上运行。对我来说,最有效的方法是从 https://slproweb.com/download/Win64OpenSSL-1_1_1d.exe安装 Win64 OpenSSL v1.1.1 d 二进制文件。

注意 : 版本似乎很重要!我已经尝试了1.1.0 L (正如其他评论和回复中所建议的那样) ,但是在这个版本中,问题依然存在。如果在安装了一些 OpenSSL 库之后仍然存在问题,请继续尝试,直到找到正确的版本。对于 Windows10上的 Anaconda3.7来说,似乎正确的版本是1.1.1 d,我没有尝试轻版本。

对我来说 不起作用的事情:

我在 Windows10上,我在 python3.7.4上安装了一个新的 Anaconda,这篇发布在 github 上的文章解决了我的问题:

(资料来源: https://github.com/conda/conda/issues/8273)

我引用:

" 我的解决办法: 我复制了以下文件

libcrypto-1_1-x64.*
libssl-1_1-x64.*

from D:\Anaconda3\Library\bin to D:\Anaconda3\DLLs.

而且很有效! "

我已经在04/2020面对过了,这些是我尝试过的方案,最后的解决方案让我度过了难关。

问题:

Requests module works fine when I use in Spyder IDE but when I try to execute the script in windows it fails with SSL error. It works fine for HTTP requests but for HTTPS requests i got SSL error.

  1. 我厌倦了 Veify = True,False,也厌倦了 Certs。
  2. 已删除的证书 -conda 已删除的证书 -没用已更新
  3. openssl , certifi - 还是同样的错误 ( Refer : Https://github.com/continuumio/anaconda-issues/issues/494 )增补
  4. 路径变量 -同样的错误
  5. 创造了新的环境 Anaconda - same error

解决办法:

解决方案来自: https://github.com/conda/conda/issues/8273

我已经将以下文件从 Anaconda3 Library bin 复制到 Anaconda3 DLL

libcrypto-1_1-x64.* libssl-1_1-x64.*

这期杂志快把我逼疯了,直到我发现了这个帖子

brew upgrade python3

(not using pycharm, using sublime)

Error when importing ssl in Python 3.7.4 on macOS 10.14.6

在安装新的蟒蛇之后进行 pip 安装时遇到了同样的 SSL 错误。在进行 pip 安装之前激活基本环境会有所帮助。 从 cmd 执行 activate base,然后运行 Python 脚本。你也可以试试 'conda run -n base python script.py'参考-< a href = “ https://github.com/conda/conda/questions/8487”rel = “ nofollow norefrer”> https://github.com/conda/conda/issues/8487

我在安装 Windows10的时候也有同样的东西。

在我从 Anaconda3\Library\bin to \Anaconda3\DLL复制 libcrypto-1_1-x64.dll and libssl-1_1-x64.dll之前,Anaconda3不会打开 AnacondaNavigator。

一旦我在基本环境中安装了 pip,就可以很好地工作,但是在我创建的另一个环境中就不行了。在新的环境中,我不得不做同样的事情。

That is, copy libcrypto-1_1-x64.dll and libssl-1_1-x64.dll from \<env folder>\Library\bin to \<env folder>\DLL then it worked fine.

在 Windows10上处理了同样的问题后,解决方案相当简单:

  1. 打开蟒蛇提示符
  2. 运行 conda init
  3. 关闭并重新打开要运行代码的任何打开的 Python 解释器(PyCharm、 Anaconda Prompt、 cmd 等)

再次运行您的代码,它应该可以工作。我已经升级了 Anaconda 和 PyCharm,在运行 conda init之前,所有版本的组合都存在问题,这会增加您的 PATH,就像从 Paul Stevens得到的答案一样。不要跳过第3点ーー重新启动 PyCharm 或任何其他解释器是关键。

此错误发生在 Python 3.7.3的 VSCode 中,但在 Python 3.7.0的 Windows 10的 IDLE 编辑器中可以正常工作。

确保您创建的项目选择了 conda 环境选项。

通过重新创建项目并从“新环境使用”选项中选择“ conda”,我的问题得到了解决

参见图片:

New environment setting

在 Windows10上-这是一个解决方案,但是不能修复根问题,如果你只是需要安装一些东西,然后继续; 在命令提示符,powershell 或 dockerfile 上执行以下命令:

Pip 配置集 global.trust _ host“ pypi.org files.pythonhosted.org”

我的队友机器也面临着同样的问题。修正了增加水蟒路径的相同问题。在我的系统中,下面是蟒蛇的路径:

C:\ProgramData\Anaconda3\Scripts
C:\ProgramData\Anaconda3\
C:\ProgramData\Anaconda3\Library\bin

确保命令是在虚拟环境中运行的; 这是我的错误。

我在 VS 代码里也遇到过同样的问题。

解决方案是使用 AnacondaPrompt 启动 VS 代码。

也就是说,运行 AnacondaPrompt,如果正在使用虚拟环境,则激活它,然后输入 code [working directory]

如果您不小心使用了没有下载请求库的 Anaconda 虚拟环境,也可能发生这种错误,这就是我的问题所在。