gcc编译源码包
- 下载python源码包并解压
wget https://www.python.org/ftp/python/3.10.18/Python-3.10.18.tgz
tar -xf Python-3.10.18.tgz
cd Python-3.10.18
- 系统编译依赖环境安装
sudo yum install zlib-devel ncurses-devel gdbm-devel nss-devel openssl-devel readline-devel libffi-devel sqlite-devel bzip2-devel tk-devel libpcap-devel xz-devel db4-devel
- 开始编译
rm -f config.cache config.log # 删除配置记录# --enable-optimizations 选项在gcc 8以下版本会导致编译问题“could not import runpy module”,
# 我们当前是gcc 4.8所以不加该选项
# 注意本地openssl目录,错误会导致pip命令无法使用
./configure --with-ensurepip=install \--with-openssl=/usr/local/openssl \--enable-shared \LDFLAGS="-Wl,-rpath /usr/local/lib" \--prefix=/usr/local/Python-3.10.18# 若不启用共享库,这不加shared参数
./configure --with-ensurepip=install \--with-openssl=/usr/local/openssl \--prefix=/usr/local/Python-3.10.18make -j $(nproc) # 并发编译sudo make altinstall # 避免覆盖默认python二进制文件
openssl文件目录实例如下:
- 创建bash命令链接
# 创建符号链接
sudo ln -s /usr/local/Python-3.10.18/bin/python3.10 /usr/local/bin/python310
sudo ln -s /usr/local/Python-3.10.18/bin/pip3.10 /usr/local/bin/pip310# 检查符号链接是否创建成功
ls -l /usr/local/bin/python310
ls -l /usr/local/bin/pip310# 添加共享库环境变量
# 二选一. 添加为永久环境变量(推荐)
sudo sh -c 'echo "/usr/local/Python-3.10.18/lib" > /etc/ld.so.conf.d/python3.10.conf'
sudo ldconfig# 二选一. 添加到环境变量文件
vi /etc/profile
# 在最后加上并保存
export LD_LIBRARY_PATH=/usr/local/Python-3.10.18/lib:$LD_LIBRARY_PATH
source /etc/profile# 验证命令是否正常工作
python310 --version
pip310 --version
- 其他可能使用的命令
# 删除链接
sudo rm /usr/local/bin/python310
sudo rm /usr/local/bin/pip310# 检查 Python 是否能导入 ssl 模块
python310 -c "import ssl; print('SSL module is available')"# 检查 OpenSSL 版本
python310 -c "import ssl; print(ssl.OPENSSL_VERSION)"
系统包管理器安装
# 添加 EPEL 仓库(如果尚未添加)
sudo yum install epel-release# 或者添加 IUS 仓库(提供更新的 Python 版本)
sudo yum install https://centos7.iuscommunity.org/ius-release.rpm# 安装 Python 3.10
sudo yum install python310 python310-devel python310-pip# 验证安装
python3.10 --version
pip3.10 --version