在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有点陌生,因此感谢您的耐心配合。 -
答案 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)
答案 4 :(得分:5)
我在04/2020遇到了它。这些是我尝试过的选项,最后的解决方案可以帮助我解决。
问题:
当我在Spyder IDE中使用时,Requests模块工作正常,但是当我尝试在Windows中执行脚本时,它失败并显示SSL错误。对于HTTP请求,它工作正常,但对于HTTPS请求,我收到SSL错误。
解决方案:
解决方案来自: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。我没有尝试过精简版。
对我来说不起作用的事情:
ssl_verify
选项更改为False
libcrypto
和libssl
DLL复制到其他位置(请参见https://github.com/conda/conda/issues/8273#issue-409800067)答案 8 :(得分:1)
确保命令是在虚拟环境中运行的;那是我的错误。
答案 9 :(得分:1)
在Windows 10上处理相同的问题后,解决方案非常简单:
conda init
再次运行您的代码,它应该可以工作。我已经升级了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的请求,而不是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并创建新的虚拟环境解决了该问题。
答案 18 :(得分:0)
如果使用 Anaconda提示,则无需添加环境路径。
启动Anaconda提示符,更改到目录并运行脚本或从此处启动编辑器。这样可以确保您处于完整的Anaconda环境中,并且SSL错误将停止。
命令提示符和Anaconda Prompt有什么区别? 请参见what is the difference between command prompt and anaconda prompt的答案。
答案 19 :(得分:0)
设置下面的路径。(这是给窗口用户的)
在环境变量=>用户变量中,如果已经打开,请关闭命令提示符,然后再次打开。
或
环境变量=>系统变量(如果您有多个用户)。如果将它们添加到系统变量中,则必须重新启动系统。
答案 20 :(得分:0)
此错误在使用Python 3.7.3的VSCode中发生,但在使用Python 3.7.0的Windows 10中的IDLE编辑器中可以正常工作。
答案 21 :(得分:0)
确保在创建项目时选择了conda环境选项。
通过重新创建项目并从“使用新环境”选项中选择“ conda”解决了我的问题
查看图片:
答案 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
我已经安装并正常运行