CentOS 7及以上版本默认通过yum(CentOS 7)或dnf(CentOS 8+)提供Python 3基础版本(如CentOS 8默认Python 3.6)。使用包管理器安装可自动解决依赖关系,避免手动编译的复杂性,且更符合系统管理规范。例如:
# CentOS 7
sudo yum install -y python3 python3-pip
# CentOS 8+
sudo dnf install -y python3 python3-pip
这种方式安装的Python版本虽不是最新,但稳定性高,适合日常开发或系统管理任务。
若需要特定Python版本(如3.9+)或自定义配置,需从源码编译。关键依赖包包括:
gcc、make(通过sudo yum groupinstall -y "Development Tools"安装);openssl-devel(SSL支持)、bzip2-devel(压缩支持)、libffi-devel(外部函数接口)、zlib-devel(压缩库)、readline-devel(命令行编辑)、sqlite-devel(数据库支持)。ModuleNotFoundError: No module named '_ssl'),需及时通过yum安装对应包。CentOS系统工具(如yum、dnf)高度依赖Python 2(CentOS 7)或Python 3(CentOS 8+)。禁止用make install直接覆盖/usr/bin/python,否则会导致系统工具无法运行。正确做法是使用make altinstall,它会将新Python安装到独立目录(如/usr/local/python3),并通过软链接(如/usr/bin/python3.9)调用,不影响系统默认Python。
不同项目可能依赖不同版本的Python库(如Django 2.x与3.x),直接全局安装会导致版本冲突。强烈建议使用虚拟环境:
venv模块(Python 3.3+内置)创建:python3 -m venv myenv # 创建虚拟环境
source myenv/bin/activate # 激活(CentOS 7需用`source /usr/local/python3/bin/activate`)
pip install的包会安装到虚拟环境目录(如myenv/lib/python3.9/site-packages),不会影响全局环境。项目结束后,用deactivate退出虚拟环境。手动编译安装后,需将Python和pip的可执行文件路径添加到环境变量PATH中,方便全局调用。编辑~/.bashrc(用户级)或/etc/profile(系统级)文件,添加:
export PATH=/usr/local/python3/bin:$PATH # 替换为实际安装路径
export PYTHON_HOME=/usr/local/python3 # 可选,用于标识Python安装目录
然后执行source ~/.bashrc使配置生效。可通过which python3验证路径是否正确。
libffi-devel:编译时出现Could not build the ssl module或ffi.h not found,需安装libffi-devel:sudo yum install -y libffi-devel
openssl-devel),并在./configure时指定路径:./configure --with-openssl=/usr/local/openssl
yum)因Python版本变更无法运行,需保留/usr/bin/python指向Python 2,或通过alternatives工具管理多版本。若需同时使用多个Python版本(如Python 3.8与3.9),可通过以下方式切换:
update-alternatives工具(CentOS自带):sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/python3.8/bin/python3 1
sudo update-alternatives --install /usr/bin/python3 python3 /usr/local/python3.9/bin/python3 2
sudo update-alternatives --config python3 # 交互式选择版本
/usr/bin/python3的软链接指向,但需谨慎操作,避免影响系统工具。安装Python后,需升级pip到最新版本(避免安全漏洞),并安装常用工具:
python3 -m pip install --upgrade pip # 升级pip
pip3 install virtualenv virtualenvwrapper # 虚拟环境管理工具(可选)
virtualenvwrapper可简化虚拟环境的创建与管理(如mkvirtualenv、workon命令)。