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

时间:2019-01-10 18:54:57

标签: python ssl https python-requests pycharm

在Python3 Windows中通过Pycharm使用请求,并收到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有点陌生,因此感谢您的耐心配合。 -

27 个答案:

答案 0 :(得分:28)

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

它的魅力!

答案 1 :(得分:18)

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

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

指向PATH变量。

答案 2 :(得分:9)

我通过按照以下建议安装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/)。

答案 3 :(得分:9)

这个问题一直让我发疯,直到我发现这篇文章说要这样做

brew upgrade python3 

(不使用pycharm,而是使用sublime)

Error when importing ssl in Python 3.7.4 on macOS 10.14.6

答案 4 :(得分:5)

我在04/2020遇到了它。这些是我尝试过的选项,最后的解决方案可以帮助我解决。

问题:

当我在Spyder IDE中使用时,

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

  1. 我对Veify = True,False和Certs感到厌倦。 相同错误
  2. 已删除证书-康达已删除证书-不起作用已更新
  3. openssl,证书-仍然存在错误(请参阅: 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。*

答案 5 :(得分:4)

我已经从此处安装了二进制文件:https://slproweb.com/products/Win32OpenSSL.html OpenSSL官方Wiki中提到了此站点。它解决了我的问题

答案 6 :(得分:4)

从OpenSSL安装了此https://slproweb.com/download/Win64OpenSSL-1_1_1c.exe。解决了我的问题。

答案 7 :(得分: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。我没有尝试过精简版。

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

答案 8 :(得分:1)

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

答案 9 :(得分:1)

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

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

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

答案 10 :(得分:1)

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

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

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

也就是说,将libcrypto-1_1-x64.dll and libssl-1_1-x64.dll\<env folder>\Library\bin复制到\<env folder>\DLL,然后一切正常。

答案 11 :(得分:1)

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

答案 12 :(得分:0)

我没有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。

答案 13 :(得分: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()

答案 14 :(得分:0)

根据此处的说明重新安装python为我解决了此问题: How can I install a previous version of Python 3 in macOS using homebrew?

答案 15 :(得分:0)

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

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

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

答案 16 :(得分: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"

答案 17 :(得分:0)

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

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

答案 18 :(得分:0)

如果使用 Anaconda提示,则无需添加环境路径。

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

命令提示符和Anaconda Prompt有什么区别? 请参见what is the difference between command prompt and anaconda prompt的答案。

答案 19 :(得分:0)

设置下面的路径。(这是给窗口用户的)

  • “ \ Anaconda3”
  • “ \\ Anaconda3 \脚本”
  • “ \\ Anaconda3 \ Library \ bin”

在环境变量=>用户变量中,如果已经打开,请关闭命令提示符,然后再次打开。

环境变量=>系统变量(如果您有多个用户)。如果将它们添加到系统变量中,则必须重新启动系统。

答案 20 :(得分:0)

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

答案 21 :(得分:0)

确保在创建项目时选择了conda环境选项。

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

查看图片:

New environment setting

答案 22 :(得分:0)

在Windows 10上-这是一种解决方法,但是如果您只需要安装某些东西并继续前进,则不能解决根本问题。在命令提示符,powershell或dockerfile上执行以下命令:

pip配置设置为global.trusted_host“ pypi.org files.pythonhosted.org”

答案 23 :(得分:0)

我的队友机器也面临相同的问题。修复了添加anaconda路径的问题。在我的系统中,是Anaconda的路径:

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

答案 24 :(得分:0)

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

尝试了许多解决方案后,我遇到了this response,这表明该版本的openssl存在问题。

一旦我将python降级到3.7.1(构建h33f27b4_4),一切都正常。

答案 25 :(得分:0)

我在 VS Code 中遇到了同样的问题。

解决方案是使用 Anaconda Prompt 启动 VS Code。

也就是说,运行 Anaconda Prompt,如果您正在使用虚拟环境,请激活您的虚拟环境,然后输入 code [working directory]

答案 26 :(得分:-2)

我从https://slproweb.com/products/Win32OpenSSL.html使用此“ Win64 OpenSSL v1.1.1h”-> EXE

我已经安装并正常运行