here回答了这个问题,但对于Windows用户。我在Anaconda环境下的第三方应用程序的Linux机器上收到此错误。我在PATH
环境中添加了以下路径:
<path>/anaconda2/lib
<path>/anaconda2/bin
但是当我跑步时:
import requests
requests.get("https://api.ipify.org")
我得到了错误:
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.ipify.org',
port=443): Max retries exceeded with url: / (Caused by SSLError("Can't
connect to HTTPS URL because the SSL module is not available."))
第三方应用程序和conda shell都在PATH
env中包含了这些路径,但仅在shell上有效。
答案 0 :(得分:0)
错误消息显示“ SSL模块不可用”。请求将openssl
用作其“ SSL模块”,因此请确保openssl
已安装并且可以正常工作。
首次运行:
~$ conda list
您应该在输出中看到openssl
和pyopenssl
如果您未安装openssl
和pyopenssl
如果已安装openssl,请运行:
~$ openssl
如果得到:
openssl: error while loading shared libraries: libcrypto.so.1.0.0: cannot enable executable stack as shared object requires: Invalid argument
使用上面的版本号运行
~$ sudo find / -name libcrypto.so.[your version]
然后使用上述输出中的libcrypto.so。[您的版本]路径:
~$ sudo execstack -c [path to]/libcrypto.so.[your version]
然后运行进行测试:
~$ openssl
OpenSSL>
您需要在所有环境中都这样做
答案 1 :(得分:0)
事实证明,我的python环境的_ssl.so
目录中的lib-dynload
模块被第3方软件中的_ssl.so
模块所覆盖,这是有冲突的。因此,我已经建立了指向我自己模块的符号链接。