通过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有点新意,感谢您的耐心等待。 -
不知道这是否已经解决,但我在Anaconda python 3.7.3和Idle上遇到了类似的问题。通过添加以下内容修复了它:
<path>\Anaconda3
<path>\Anaconda3\scripts
<path>\Anaconda3\Library\bin
到PATH变量。
我根据以下推荐安装了OpenSSL解决了问题:https://github.com/conda/conda/issues/8046#issuecomment-450515815
conda repo中的相应票:https://github.com/conda/conda/issues/8046
更新:问题(在PyCharm中)应该在2019.1版本中解决(早期访问预览版本已经可用https://www.jetbrains.com/pycharm/nextversion/)。
我从这里安装了二进制文件:https://slproweb.com/products/Win32OpenSSL.html这个站点在OpenSSL官方维基上提到。它解决了我的问题
从OpenSSL安装了这个https://slproweb.com/download/Win64OpenSSL-1_1_1c.exe。解决了我的问题。
设置在路径下方。(这适用于窗口用户)
在环境变量=>用户变量和关闭命令提示符(如果已打开)并再次打开它。
要么
如果您有多个用户,则环境变量=>系统变量。如果将它们添加到系统变量中,则必须重新启动系统。
访问网站:从开发人员工具中获取以下信息并查看标题。 (右键单击 - >检查。然后打开网络选项卡并检查标题)
所以我们看到我们需要对HTTP执行请求,而不是HTTPS。
import requests
def Earlybird():
url = 'http://msft.com/'
response = requests.get(url)
print(response.text)
if __name__ == '__main__':
Earlybird()
我在使用Conda和Python 2.7.2的Windows 10上遇到了类似的问题
在尝试了很多很多解决方案后,我遇到了this response,这表明openssl在该版本中存在问题。
一旦我将python降级到3.7.1(构建h33f27b4_4),一切正常。