可以在 CentOS 上通过源码编译安装 Python,而且这是很多场景(比如需要特定版本、启用某些模块)下的常见做法。
下面给你一个通用、稳妥的流程(以 CentOS 7/8 为例,安装 Python 3.11 示例)。
# CentOS 7
yum groupinstall -y "Development Tools"
yum install -y gcc make zlib-devel bzip2-devel \
openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel gdbm-devel db4-devel \
libpcap-devel xz-devel libffi-devel
# CentOS 8 / Stream
dnf groupinstall -y "Development Tools"
dnf install -y gcc make zlib-devel bzip2-devel \
openssl-devel ncurses-devel sqlite-devel \
readline-devel tk-devel gdbm-devel \
libffi-devel xz-devel
cd /usr/src
wget https://www.python.org/ftp/python/3.11.6/Python-3.11.6.tgz
tar xzf Python-3.11.6.tgz
cd Python-3.11.6
(版本可自己换)
./configure \
--prefix=/usr/local/python3.11 \
--enable-optimizations \
--with-ssl-default-suites=openssl
make -j $(nproc)
make altinstall
⚠️ 推荐用 make altinstall 而不是 make install
避免覆盖系统自带的 python 命令(CentOS 系统工具依赖它)
ln -s /usr/local/python3.11/bin/python3.11 /usr/bin/python3.11
ln -s /usr/local/python3.11/bin/pip3.11 /usr/bin/pip3.11
使用:
python3.11 -V
pip3.11 -V
python3.11
>>> import ssl, sqlite3, readline
>>> exit()
python3.11 -m ensurepip
通常是 openssl 版本太低(CentOS 7 常见)
→ 需要先源码装新 openssl,再编译 Python
✅ 不会,只要不替换 /usr/bin/python
dnf install python3Software Collections (SCL)docker + python如果你愿意,可以告诉我:
我可以给你精确命令。