一、环境准备与依赖安装
1.更新系统与开发工具
sudo yum update -y sudo yum groupinstall "development tools" -y sudo yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel \ readline-devel tk-devel libffi-devel gdbm-devel db4-devel libpcap-devel xz-devel expat-devel
作用:安装编译 python 所需的依赖库。若缺少依赖可能导致 _ctypes
、_ssl
等模块编译失败
2.检查 openssl 版本
openssl version
若版本低于 1.1.1,需手动升级(python 3.10 要求 openssl ≥1.1.1):
wget https://www.openssl.org/source/openssl-1.1.1k.tar.gz tar -zxvf openssl-1.1.1k.tar.gz && cd openssl-1.1.1k ./config --prefix=/usr/local/openssl shared zlib make && sudo make install # 配置系统使用新版本 echo "/usr/local/openssl/lib" >> /etc/ld.so.conf ldconfig -v ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
注意:升级后需验证 openssl version
是否显示新版本。
二、编译安装 python 3.10
下载源码并解压
wget https://www.python.org/ftp/python/3.10.12/python-3.10.12.tgz tar -zxvf python-3.10.12.tgz && cd python-3.10.12
配置编译参数
./configure --prefix=/usr/local/python3.10 \ --enable-optimizations \ --with-openssl=/usr/local/openssl \ --with-ssl-default-suites=openssl
关键参数说明:
--with-openssl
:指定自定义 openssl 路径(避免ssl module
缺失)。--enable-optimizations
:优化编译性能,若编译失败可去掉此参数。
编译与安装
make -j $(nproc) && sudo make altinstall
使用 altinstall
而非 install
:避免覆盖系统默认 python 2.7。
验证安装
/usr/local/python3.10/bin/python3.10 --version # 应输出 python 3.10.x /usr/local/python3.10/bin/python3.10 -c "import ssl; print(ssl.openssl_version)" # 验证 ssl 模块
三、环境配置
设置全局软链接
sudo ln -s /usr/local/python3.10/bin/python3.10 /usr/bin/python3 sudo ln -s /usr/local/python3.10/bin/pip3.10 /usr/bin/pip3
配置环境变量
echo 'export path=$path:/usr/local/python3.10/bin' >> /etc/profile source /etc/profile
修复 yum 工具冲突 修改 /usr/bin/yum
和 /usr/libexec/urlgrabber-ext-down
文件,将 #!/usr/bin/python
改为 #!/usr/bin/python2
,以解决因 python 3 导致 yum 失效的问题。
四、常见错误及解决方法
zipimport.zipimporterror: can't decompress data; zlib not available
原因:缺少 zlib-devel
库。 解决:
sudo yum install -y zlib-devel # 重新编译 python
modulenotfounderror: no module named '_ctypes'
原因:未安装 libffi-devel
。 解决:
sudo yum install -y libffi-devel # 重新编译 python
ssl module is not available
或 pip 证书验证失败
原因:python 未正确链接 openssl。 解决:
确认编译时指定 --with-openssl
路径。
- 若仍报错,手动修改
modules/setup
文件,添加以下内容后重新编译:
ssl=/usr/local/openssl _ssl _ssl.c -duse_ssl -i$(ssl)/include -l$(ssl)/lib -lssl -lcrypto
动态库缺失(如 libssl.so.1.1
) 解决:
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1 ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1 ldconfig -v
make altinstall
后无 pip3
原因:altinstall
不会自动创建 pip
软链接。 解决:手动创建软链接或通过 python3 -m ensurepip
安装。
五、优化配置
配置国内 pip 源
mkdir -p ~/.pip && cat > ~/.pip/pip.conf << eof [global] index-url = https://mirrors.aliyun.com/pypi/simple/ trusted-host = mirrors.aliyun.com eof
更新 pip 与 setuptools
pip3 install --upgrade pip setuptools
总结:centos 7.9 安装 python 3.10 的核心在于 openssl 升级和依赖完整性检查。若遇到编译错误,优先检查依赖库是否齐全,并通过环境变量和编译参数确保 python 正确链接所需组件。
到此这篇关于centos 7.9 安装 python 3.10 详细步骤及常见问题解决的文章就介绍到这了,更多相关centos 7.9 安装 python 3.10 内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论