CentOS 7系统下Python2与Python3共存配置指南
CentOS 7默认预装了Python 2.7版本,部分系统工具依赖该版本运行,直接升级到Python3可能影响系统稳定性。本文介绍如何在CentOS 7系统中实现Python2与Python3共存,满足不同场景的开发需求。
环境准备
首先更新系统软件包,安装编译Python3所需的依赖工具:
sudo yum update -y sudo yum install -y gcc openssl-devel bzip2-devel libffi-devel zlib-devel readline-devel sqlite-devel wget
查看系统默认Python版本
执行以下命令查看当前系统默认的Python版本:
python --version python2 --version
默认输出应为Python 2.7.x,确认系统原有Python2环境正常。
下载并编译安装Python3
前往Python官方源码页面获取最新稳定版Python3的源码包,本文以Python 3.9.18为例:
# 下载源码包 wget https://www.python.org/ftp/python/3.9.18/Python-3.9.18.tgz # 解压源码包 tar -zxvf Python-3.9.18.tgz cd Python-3.9.18 # 配置编译参数,指定安装路径避免覆盖系统原有Python ./configure --prefix=/usr/local/python3 --enable-optimizations # 编译并安装,使用-altinstall避免替换系统默认python链接 sudo make altinstall
注意这里使用make altinstall而非make install,可以有效防止覆盖系统默认的python命令,保证Python2环境不受影响。
配置Python3命令别名
安装完成后,Python3的可执行文件路径为/usr/local/python3/bin/python3.9,可以通过创建软链接或者配置别名的方式方便调用:
方式一:创建软链接
sudo ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3 sudo ln -s /usr/local/python3/bin/pip3.9 /usr/bin/pip3
方式二:配置用户别名(仅当前用户生效)
编辑用户目录下的~/.bashrc文件,添加以下内容:
alias python3='/usr/local/python3/bin/python3.9' alias pip3='/usr/local/python3/bin/pip3.9'
执行source ~/.bashrc使配置生效。
验证共存效果
分别执行以下命令验证两个版本的Python是否都能正常运行:
# 验证Python2版本 python --version python2 --version # 验证Python3版本 python3 --version /usr/local/python3/bin/python3.9 --version
正常情况下会分别输出Python 2.7.x和Python 3.9.18的版本信息,说明两个版本已经成功共存。
虚拟环境使用建议
为了避免不同项目的依赖冲突,建议为不同Python版本的项目创建独立的虚拟环境:
Python2虚拟环境
# 安装virtualenv sudo pip install virtualenv # 创建Python2虚拟环境 virtualenv py2_env # 激活虚拟环境 source py2_env/bin/activate
Python3虚拟环境
# 创建Python3虚拟环境 python3 -m venv py3_env # 激活虚拟环境 source py3_env/bin/activate
激活虚拟环境后,终端提示符会显示当前环境名称,此时安装的依赖只会在当前虚拟环境中生效,不会相互影响。
常见问题处理
如果执行
python3命令提示找不到文件,检查软链接是否创建正确,或者确认Python3的安装路径是否正确。如果pip3安装包时提示SSL相关错误,重新编译Python3时需要确保
openssl-devel依赖已经正确安装,并且配置时开启了SSL支持。不要直接删除系统默认的
/usr/bin/python链接,也不要修改其指向的版本,否则可能导致yum等系统工具无法正常运行。
通过以上步骤,即可在CentOS 7系统中实现Python2与Python3的稳定共存,既可以满足系统工具的依赖需求,也能支持使用Python3进行新项目的开发。