【问题标题】:Requests (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.") Error in PyCharm requesting website请求(由 SSLError 引起(“无法连接到 HTTPS URL,因为 SSL 模块不可用。”)PyCharm 请求网站中的错误
【发布时间】:2019-06-05 16:59:18
【问题描述】:

通过 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有点陌生,所以感谢您的耐心等待。 -

【问题讨论】:

标签: python ssl https python-requests pycharm


【解决方案1】:

不知道这是否已经解决,但我在 Windows 10 上遇到了与 Anaconda python 3.7.3 和 Idle 类似的问题。通过添加修复它:

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

到 PATH 变量。

【讨论】:

  • 虽然不知道为什么要导出多条路径,但是对我有用,谢谢。
  • 这对我有用!不是“execstack ...”cmd,而是这个!添加 path/anaconda3/library/bin 对我有用
  • 不确定我们必须如何/在哪里添加这 3 条路径?
  • Alex - 将这些项目添加到 PATH 环境变量中(例如,请参阅下面的 Mukesh Methaniya/Neuron 答案)
  • 我必须在哪里添加这些路径?我正在尝试使用 python get-pip.py 从特定文件夹运行 python 代码
【解决方案2】:

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

它就像一个魅力! "

【讨论】:

  • 对我来说所有东西的相同版本。具有 3.7.4 的 Windows 10 Miniconda。已使用此解决方案修复。
【解决方案3】:

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

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

每位用户:

  1. 打开环境变量
  2. 单击用户变量
  3. 关闭命令提示符(如果已打开并重新打开)

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

  1. 打开环境变量
  2. 单击系统变量
  3. 重启 Windows

【讨论】:

  • 为我工作。谢谢。
  • 你在哪里设置路径?添加“新”,然后为每个 Anaconda3 文件夹创建路径?
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

    【解决方案6】:

    这个问题让我发疯了,直到我发现这篇说要做的帖子

    brew upgrade python3 
    

    (不使用pycharm,使用sublime)

    Error when importing ssl in Python 3.7.4 on macOS 10.14.6

    【讨论】:

      【解决方案7】:

      我没有 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,输出是 &lt;Response [200]&gt; 而不是 SSLError。

      【讨论】:

        【解决方案8】:

        我在 2020 年 4 月遇到了它。这些是我尝试过的选项,最后一个解决方案让我通过了。

        问题:

        当我在 Spyder IDE 中使用时,请求模块工作正常,但是当我尝试在 Windows 中执行脚本时,它会因 SSL 错误而失败。它适用于 HTTP 请求,但对于 HTTPS 请求我得到 SSL 错误。

        1. 我厌倦了 Veify=True, False 以及 Certs。 同样的错误
        2. 已删除证书 - conda remove certifi - 无效已更新
        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.*

        【讨论】:

        • 这对我也有用!感谢您完成所有调试步骤:)
        【解决方案9】:

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

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

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

        【讨论】:

          【解决方案10】:

          我在安装 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\&lt;env folder&gt;\Library\bin 复制到\&lt;env folder&gt;\DLL 就可以了。

          【讨论】:

            【解决方案11】:

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

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

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

            【讨论】:

            • 非常感谢您! VSCode 刚刚在我的机器上完成了它的每月自动更新,突然这个问题出现了,你的解决方案完美运行 :)
            【解决方案12】:

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

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

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

            【讨论】:

              【解决方案13】:

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

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

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

              【讨论】:

                【解决方案14】:

                访问网站:为我提供来自开发者工具的以下信息并查看标题。 (右键单击 --> 检查。然后打开网络选项卡并检查标题)

                • 请求网址:http://www.msft.com/
                • 请求方法:GET
                • 状态码:200 OK
                • 远程地址:205.178.189.130:80
                • 推荐人政策:no-referrer-when-downgrade

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

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

                【讨论】:

                  【解决方案15】:

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

                  【讨论】:

                    【解决方案16】:

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

                    【讨论】:

                      【解决方案17】:

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

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

                      看图:

                      【讨论】:

                      • 只需要Add Interpreter 然后选择existing environnement 就可以了。无需重新创建项目。
                      【解决方案18】:

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

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

                      【讨论】:

                        【解决方案19】:

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

                        【讨论】:

                          【解决方案20】:

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

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

                          【讨论】:

                            【解决方案21】:

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

                            【讨论】:

                              【解决方案22】:

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

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

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

                              【讨论】:

                              • 不确定“不合理的请求”是什么意思,但实际上这通常是避免奇怪错误的好习惯,它也解决了这个错误。不难,在提示符中输入code即可启动VS Code。
                              【解决方案23】:

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

                              【讨论】:

                                【解决方案24】:

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

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

                                【讨论】:

                                  【解决方案25】:

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

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

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

                                  【讨论】:

                                    【解决方案26】:

                                    我使用这个“Win64 OpenSSL v1.1.1h”->来自https://slproweb.com/products/Win32OpenSSL.html的EXE

                                    我已经安装好了

                                    【讨论】:

                                    • 欢迎来到 StackOverflow!这个解决方案已经在anotheranswers 中提出。请在发布之前确保您的解决方案是新的。
                                    猜你喜欢
                                    • 1970-01-01
                                    • 2022-11-10
                                    • 2020-08-01
                                    • 2019-08-26
                                    • 1970-01-01
                                    • 1970-01-01
                                    • 2019-03-05
                                    • 1970-01-01
                                    • 1970-01-01
                                    相关资源
                                    最近更新 更多