You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

使用pip安装Python包时持续出现SSL证书及X509_up_ref错误求助

解决pip安装pyinput时的SSL证书验证错误与X509_up_ref属性缺失问题

从你提供的错误日志来看,你在Python2.7环境下使用pip install pyinput时遇到了两个核心问题:一是SSL证书验证失败导致无法连接PyPI源,二是OpenSSL.SSL模块中缺少X509_up_ref属性。这两个问题本质上都是Python2.7的兼容性问题——毕竟Python2.7已经停止官方维护多年,很多依赖库也不再对其提供支持,导致版本匹配混乱。

下面是几个可以尝试的解决方案:

1. 优先升级到Python3(最推荐)

Python2.7在2020年就已经结束了生命周期,不仅没有安全更新,而且绝大多数新包和依赖库都不再支持它。升级到Python3.8及以上版本后,pip的SSL验证机制会更完善,也不会出现这类老旧库的属性缺失问题,这是从根源上解决问题的办法。

2. 若必须保留Python2.7,尝试以下修复步骤

(1)降级pyOpenSSL到兼容Python2.7的版本

错误中的X509_up_ref属性缺失,是因为你当前安装的pyOpenSSL版本过高,不再适配Python2.7。可以尝试安装一个兼容的旧版本:

pip install pyopenssl==19.1.0

这个版本是最后几个支持Python2.7的pyOpenSSL版本之一,安装完成后再尝试重新安装pyinput。

(2)使用国内PyPI镜像并绕过证书验证(注意安全风险)

如果SSL证书验证问题仍然存在,可以改用国内的PyPI镜像源,同时添加--trusted-host参数跳过证书验证:

pip install pyinput -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

注意:这种方式会跳过SSL证书验证,有一定的安全风险,仅在测试或可信环境下使用。

(3)检查系统OpenSSL版本

Python2.7对新版本的OpenSSL(比如1.1.x及以上)支持不佳,如果你系统的OpenSSL版本过高,可能会导致这类兼容性问题。可以通过以下命令查看系统OpenSSL版本:

openssl version

如果版本是1.1.x或更高,建议降级到1.0.x系列(具体操作因系统而异,比如Debian/Ubuntu可以通过指定版本安装)。

3. 确认包名是否正确

另外需要注意:PyPI上并没有名为pyinput的官方包,你可能是想安装pyinputplus(一个简化输入处理的库)?如果是这样,安装命令应该是:

pip install pyinputplus

当然,这个操作同样需要先解决前面的SSL和依赖兼容问题。

内容的提问来源于stack exchange,提问作者Nyle Cohen

火山引擎 最新活动