EC2实例编译安装Python3.10后pip报SSL模块不可用问题求助
Amazon Linux 2 安装Python3.10相关问题解决方案
问题1:正确安装所需开发工具包的方法
你遇到Development Tools组安装报错是Amazon Linux 2 软件源缓存异常或组配置差异导致的,直接执行以下命令安装核心开发组件即可:
# 先刷新yum缓存 sudo yum clean all sudo yum makecache sudo yum update -y # 直接安装核心开发工具,无需依赖组安装 sudo yum install gcc make autoconf automake libtool gcc-c++ pkgconfig -y
问题2:开发工具安装后是否能解决pip SSL模块不可用报错
不能直接解决。
该报错的核心原因是Python 3.10要求依赖OpenSSL 1.1.1及以上版本,但Amazon Linux 2 默认的openssl-devel包对应版本为1.0.2,你之前编译Python时无法匹配到符合要求的SSL库,因此ssl模块编译失败,才会出现pip调用HTTPS报错。
你需要先安装符合要求的OpenSSL开发包:
sudo yum install openssl11 openssl11-devel -y
后续重新编译Python3.10时,需要在configure步骤指定OpenSSL路径,才能正常编译出带ssl模块的版本,configure命令修改为:
sudo ./configure --enable-optimizations --with-openssl=/usr/include/openssl11
问题3:彻底卸载手动编译安装的Python3.10的方法
通过make altinstall安装的Python不会被yum管理,直接删除对应安装文件即可:
# 删除执行文件 sudo rm -f /usr/local/bin/python3.10 sudo rm -f /usr/local/bin/pip3.10 sudo rm -f /usr/local/bin/pip-3.10 # 删除对应的依赖库目录 sudo rm -rf /usr/local/lib/python3.10 # 删除手册文件 sudo rm -f /usr/local/share/man/man1/python3.10.1 # 清理系统命令缓存 hash -r
执行完成后,输入python3.10 --version会提示命令不存在,即卸载完成。如果之前你手动修改了软链接将python3指向3.10版本,执行sudo rm -f /usr/local/bin/python3即可清除残留。
内容的提问来源于stack exchange,提问作者smiffy
相关产品推荐
相关产品推荐

