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


84

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

我花了几个小时试图弄清楚是什么原因造成的。我已经重新安装了Anaconda,并且完全卡住了。运行以下内容时

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吗?我对python有点陌生,因此感谢您的耐心配合。--


从OpenSSL安装了此slproweb.com/download/Win64OpenSSL-1_1_1c.exe。解决了我的问题。
Matej Novosad '19

Answers:


101

不知道这是否已经解决,但是我在Windows 10上遇到了Anaconda python 3.7.3和Idle的类似问题,并通过添加以下内容进行了修复:

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

到PATH变量。


虽然不知道为什么我们必须导出多个路径,但对我有用,谢谢。
hui chen

1
这对我有用!不是“ execstack ...” cmd,而是这个!添加path / anaconda3 / library / bin对我
有用-ERJAN

1
不知道要如何/在何处添加这3条路径?
Alex Dana

亚历克斯-将这些项目添加到PATH环境变量中(例如,参见下面的Mukesh Methaniya / Neuron答案)
Paul Stevens

我必须在哪里添加这些路径?我正在尝试使用python get-pip.py
Danny Hern

24

我在Windows 10上,在python 3.7.4上全新安装了Anaconda时遇到了问题,github上的帖子解决了我的问题:

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

我引用:

“我的解决方法:我已复制以下文件

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

从D:\ Anaconda3 \ Library \ bin到D:\ Anaconda3 \ DLLs。

而且它是一种魅力!”


4
对我来说,所有版本都相同。Windows 10 Miniconda具有3.7.4。解决此问题。
Kevin Vasko

1
为我工作。谢谢!
Tim Gottgetreu

13

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

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

每位使用者:

  1. 开放式环境变量
  2. 请点击 User Variable
  3. 如果已经打开,请关闭命令提示符,然后重新打开

系统范围(需要重新启动)

  1. 开放式环境变量
  2. 请点击 System Variable
  3. 重新启动Windows




5

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

  • brew uninstall python3
  • brew install 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。


5

我在04/2020上遇到过。这些是我尝试过的选项,最后的解决方案使我顺利通过了。

问题:

当我在Spyder IDE中使用时,Requests模块运行良好,但是当我尝试在Windows中执行脚本时,它失败并显示SSL错误。对于HTTP请求,它工作正常,但对于HTTPS请求,我收到SSL错误。

  1. 我对Veify = True,False和Certs感到厌倦。同样的错误
  2. 删除证书-康达删除证书-无效 更新
  3. openssl,certifi-仍然是相同的错误(参考:https : //github.com/ContinuumIO/anaconda-issues/issues/494)已添加
  4. 路径变量-同样的错误
  5. 在Anaconda中创建了新环境-同样的错误

解决它的解决方案:

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

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

libcrypto-1_1-x64。* libssl-1_1-x64。*


这也对我有用!感谢您完成所有调试步骤:)
Lou

2

我在Windows 10上使用Conda和Python 2.7.2遇到了类似的问题

在尝试了许多解决方案之后,我遇到了此响应该响应表明该版本中的openssl存在问题。

一旦我将python降级到3.7.1(内部版本h33f27b4_4),一切正常。


1

如果使用Anaconda Prompt,则无需为环境添加路径

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

命令提示符和Anaconda Prompt有什么区别? 请参阅此SO答案,以了解命令提示符和anaconda提示符之间的区别


1

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

注意:版本似乎很重要!我已经尝试了1.1.0L(如其他评论和响应中所建议),但是使用此版本,问题仍然存在。如果在安装某些OpenSSL库后仍然遇到问题,请继续尝试直到找到正确的版本。对于Windows 10上的Anaconda 3.7,似乎正确的选择是1.1.1d。我没有尝试过简易版。

事情没有工作对我来说:


1

全新安装anaconda后执行pip安装时遇到相同的SSL错误。有用的是在执行pip安装之前激活了基本环境。做一个activate base从cmd,然后运行你的Python脚本。您也可以尝试'conda run -n base python script.py'参考-https: //github.com/conda/conda/issues/8487


1

我在Windows 10安装上也有同样的事情。

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

一旦完成pip安装,在基本环境中的安装就可以正常工作,但在我创建的另一个环境中却无法运行。在新环境中,我必须执行与上述相同的操作。

也就是说,libcrypto-1_1-x64.dll and libssl-1_1-x64.dll从复制\<env folder>\Library\bin\<env folder>\DLL可以正常工作。


0

前往网站:为我提供了以下来自开发人员工具的信息并查看了标头。(右键单击->检查。然后打开“网络”标签并检查标题)

  • 要求网址: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()

0

注意:此问题已在Windows 10上修复,而我在Windows 10上也面临虚拟环境的相同问题。通过以管理员身份运行CMD并创建新的虚拟环境已解决了该问题。

  • 以管理员身份运行cmd
  • 创建虚拟环境(virtualenv .venv)
  • 激活虚拟环境.venv \ Scripts \ activate
  • 点安装请求

0

通过在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"

0

我使用VSCode进行编辑和调试,唯一对我有用的解决方案是在Windows中编辑环境变量。显然这会引起问题,但我不确定它们是什么。

从Anaconda提示符运行(如sayth所建议)对我来说不是一种选择。或建议是运行anaconda提示符,然后从anaconda提示符中以某种方式启动VSCode。听起来不合理。

这似乎是一个长期存在的长期问题,没有一个对每个人都有效的明确的全球答案。



0

在Windows 10上处理相同的问题后,解决方案非常简单:

  1. 打开Anaconda提示
  2. conda init
  3. 关闭并重新打开要在其中运行代码的所有打开的Python解释器(PyCharm,Anaconda Prompt,cmd等)

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


0

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


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.