Linux上的请求(由SSLError(“无法连接到HTTPS URL,因为SSL模块不可用。”)引起)

2024-05-16 01:45:28 发布

您现在位置:Python中文网/ 问答频道 /正文

此问题已回答here,但适用于Windows用户。我在Anaconda环境下的第三方应用程序上的Linux计算机上遇到此错误。我向我的PATHenv添加了以下路径:

<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."))

第三方应用程序和condashell都在PATHenv中包含这些路径,但它只在shell上工作


Tags: path用户org路径api应用程序herewindows
2条回答

我的python环境的lib-dynload目录中的_ssl.so模块被第三方软件中的_ssl.so模块覆盖,这是冲突的。所以我做了一个sym链接到我自己的模块

错误消息显示“SSL模块不可用”。请求使用openssl作为其“SSL模块”,因此请确保openssl已安装且工作正常

首次运行:

~$ conda list

您应该在输出中看到opensslpyopenssl

如果不安装opensslpyopenssl

如果安装了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>

您将需要在所有环境中执行此操作

相关问题 更多 >