首页 > 解决方案 > Python 导入错误在没有 sudo 权限的 Centos 上没有名为 _ssl 的模块

问题描述

我想在共享 Centos 机器上安装 Plotly,所以我没有 Sudo 访问权限。这台计算机上的所有软件包都已过时,所以我需要通过编译源代码为我的本地用户安装 python3,我做到了。问题是 pip 命令不起作用,它给了我这个错误:

无法获取 URL“某些 url”:确认 ssl 证书时出现问题:HTTPSConnectionPool(host='pypi.org',port=443):url 超出最大重试次数:/simple/pip/(由 SSLError(“无法连接到 HTTPS URL,因为 SSL 模块不可用。")) - 跳过

我成功地使用 whl 文件安装了软件包,但是当我尝试导入 Plotly 时再次出现此错误:

import _ssl             # if we can't import it, let the error propagate

ModuleNotFoundError:没有名为“_ssl”的模块

我尝试使用不同的配置再次重新编译 python。在尝试构建 python 时,我尝试了将 --with-ssl 放入 ./configure 命令的建议,但我收到了未知参数警告。我再次尝试从 Modules/Setup 文件中取消注释以下行,但在编译步骤中出现以下错误。

ssl _ssl.c \
-DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
-L$(SSL)/lib -lssl -lcrypto

./Modules/_ssl.c:3112:错误:函数“X509_VERIFY_PARAM_set_hostflags”的隐式声明

./Modules/_ssl.c:在函数“get_verify_flags”中:

./Modules/_ssl.c:3410:警告:赋值使指针从整数而不进行强制转换

./Modules/_ssl.c:在函数“set_verify_flags”中:

./Modules/_ssl.c:3423:警告:赋值使指针从整数而不进行强制转换

./Modules/_ssl.c:在函数“set_host_flags”中:

./Modules/_ssl.c:3586:警告:赋值使指针从整数而不进行强制转换

make[3]: *** [Modules/_ssl.o] 错误 1

另外在配置步骤中,我得到了有关 ssl 的以下几行

检查是否针对 OpenSSL 进行编译和链接工作......是的

检查 libssl 中的 X509_VERIFY_PARAM_set1_host ... 否

检查 --with-ssl-default-suites... python

谁能帮我找到在没有 sudo 访问权限的 CentOS 计算机上安装 Plotly 的解决方案?谢谢你的帮助。

标签: pythonlinuxcentos

解决方案


推荐阅读