关于python:请求(由SSLError(“由于SSL模块不可用,无法连接到HTTPS URL。”引起)。PyCharm请求网站时出错

Requests (Caused by SSLError(“Can't connect to HTTPS URL because the SSL module is not available.”) Error in PyCharm requesting website

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

我已经花费了数小时试图找出可能导致这种情况的原因。我已经重新安装了Anaconda,但我完全卡住了。运行以下

1
2
3
4
5
def Earlybird(daycount):
    url = 'https://msft.com'
    response = requests.get(url)
    print(response)
Earlybird()

我收到错误

1
2
3
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有点陌生,因此感谢您的耐心配合。 -


尚不知道此问题是否已解决,但我在Windows 10上遇到了Anaconda python 3.7.3和Idle的类似问题,并添加了以下内容:

1
2
3
<path>\\Anaconda3
<path>\\Anaconda3\\scripts
<path>\\Anaconda3\\Library\\bin

到PATH变量。


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

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

我引用:

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

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

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

它的魅力!
"


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

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

每位用户:

  • 开放式环境变量
  • 单击用户变量akbkbd
  • 如果已经打开,请关闭命令提示符,然后重新打开
  • 系统范围(需要重新启动):

  • 开放式环境变量
  • 单击系统变量
  • 重新启动Windows

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


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


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

    1
    brew upgrade python3

    (不使用pycharm,使用崇高)

    在macOS 10.14.6上的Python 3.7.4中导入ssl时出错


    我没有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并成功完成。

    使用此脚本只是为了查看它是否有效

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

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


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

    问题:

    当我在Spyder IDE中使用时,

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

  • 我对Veify = True,False和Certs感到厌倦。同样的错误。
  • 删除证书-康达删除证书-无效更新
  • openssl,certifi-仍然相同的错误
    https://github.com/ContinuumIO/anaconda-issues/issues/494)添加
  • 路径变量-同样的错误
  • 在中创建了新环境
    水蟒-同样的错误
  • 解决方案:

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

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

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


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

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

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


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

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

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


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

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

    不适用于我的东西:

    • 遵循Anaconda故障排除(https://docs.conda.io/projects/conda/zh/latest/user-guide/troubleshooting.html#ssl-connection-errors)。激活环境并按照他们所说的去做根本没有帮助。
    • ssl_verify选项更改为False
    • 使用"添加到路径"选项安装Anaconda 3
    • 手动将libcryptolibssl DLL复制到其他位置(请参阅https://github.com/conda/conda/issues/8273#issue-409800067)

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


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

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

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

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


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

  • 打开Anaconda提示
  • 运行conda init
  • 关闭并重新打开要在其中运行代码的所有打开的Python解释器(PyCharm,Anaconda Prompt,cmd等)
  • 再次运行您的代码,它应该可以工作。我已经升级了Anaconda和PyCharm,并在使用版本conda init之前遇到了所有版本组合的问题,这增加了您的路径,就像Paul Stevens的回答一样。不要跳过#3a"重新启动PyCharm或其他解释器是关键。


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

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

    查看图片:

    New


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

    1
    2
    3
    C:\\ProgramData\\Anaconda3\\Scripts
    C:\\ProgramData\\Anaconda3\\
    C:\\ProgramData\\Anaconda3\\Library\\bin

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

    • 要求网址:http://www.msft.com/
    • 请求方法:GET
    • 状态码:200 OK
    • 远程地址:205.178.189.130:80
    • 推荐人政策:降级时无推荐人

    所以我们看到我们需要执行对HTTP的请求,而不是HTTPS。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import requests


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

    if __name__ == '__main__':
        Earlybird()

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

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

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


    通过在Windows 10中执行以下操作来解决:

    1
    2
    3
    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"

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

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

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


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

    pip配置设置global.trusted_host" pypi.org files.pythonhosted.org"


    根据此处的说明重新安装python为我解决了此问题:
    如何使用自制软件在macOS中安装Python 3的早期版本?


    我使用https://slproweb.com/products/Win32OpenSSL.html

    上的此" Win64 OpenSSL v1.1.1h"-> EXE

    我已经安装并运行了