在开发场景中,不少项目依赖Python2运行,同时新项目又需要使用Python3的特性,这时候就需要在一台设备上同时配置两个版本的Python环境变量,并且能准确区分调用。下面针对不同操作系统分别介绍具体的配置方法。

Windows系统配置方法
Windows系统下可以通过修改可执行文件名称、配置PATH路径的方式实现版本区分。
步骤1:安装两个版本Python
分别安装Python2和Python3,安装时记得勾选Add_Python_to_PATH选项,如果没勾选后续需要手动添加路径。假设Python2安装路径为C:Python27,Python3安装路径为C:Python39。
步骤2:修改可执行文件名称
进入Python2的安装目录,将python.exe重命名为python2.exe,将pip.exe重命名为pip2.exe;同样进入Python3安装目录,将python.exe重命名为python3.exe,pip.exe重命名为pip3.exe。
步骤3:配置环境变量
右键点击此电脑,选择属性,进入高级系统设置,点击环境变量,在系统变量的PATH中添加两个Python版本的路径:
# 添加Python2路径 C:Python27 C:Python27Scripts # 添加Python3路径 C:Python39 C:Python39Scripts
配置完成后打开命令提示符,输入python2 --version可以查看Python2版本,输入python3 --version可以查看Python3版本,输入对应的pip2和pip3可以分别管理两个版本的依赖包。
Linux/macOS系统配置方法
Linux和macOS系统自带Python2的情况较多,配置时可以通过别名和软链接的方式区分。
步骤1:确认Python安装路径
在终端输入以下命令查看两个版本的安装路径:
# 查看Python2路径 which python2 # 查看Python3路径 which python3
步骤2:设置别名区分调用
编辑用户目录下的.bashrc或者.zshrc文件,添加以下别名配置:
# 设置Python别名 alias python2='/usr/bin/python2' alias python3='/usr/bin/python3' # 设置pip别名 alias pip2='pip2' alias pip3='pip3'
保存后执行source ~/.bashrc或者source ~/.zshrc让配置生效,之后在终端输入python2就会调用Python2版本,输入python3调用Python3版本。
步骤3:软链接配置(可选)
如果需要将python命令默认指向某个版本,可以创建软链接:
# 将python命令指向Python3 sudo ln -s /usr/bin/python3 /usr/bin/python # 如果需要指向Python2则替换为对应路径 # sudo ln -s /usr/bin/python2 /usr/bin/python
虚拟环境实现版本隔离
除了全局配置环境变量,使用虚拟环境可以更灵活地管理不同项目的Python版本,避免全局版本冲突。
Python3自带venv模块,创建Python3虚拟环境的命令如下:
# 创建Python3虚拟环境 python3 -m venv py3_env # 激活虚拟环境(Linux/macOS) source py3_env/bin/activate # 激活虚拟环境(Windows) py3_envScriptsactivate
如果需要创建Python2的虚拟环境,可以先安装virtualenv工具:
# 安装virtualenv pip2 install virtualenv # 创建Python2虚拟环境 virtualenv -p /usr/bin/python2 py2_env # 激活虚拟环境 source py2_env/bin/activate
激活虚拟环境后,终端的命令行前缀会出现环境名称,此时使用的Python和pip都是对应版本的,退出虚拟环境执行deactivate命令即可。
常见问题排查
- 如果输入命令后提示找不到版本,检查环境变量路径是否正确,或者别名配置是否生效。
- 如果pip安装依赖时报错,确认使用的是
pip2还是pip3,对应版本的pip只能管理对应版本的依赖包。 - 修改文件名称或者软链接后需要重启终端才能让配置生效。