怎么同时配置Python 3和Python 2的环境变量?
在同一台计算机上同时运行 Python 3 与 Python 2,核心解决路径在于将两个版本的可执行文件目录与脚本目录分别添加至系统的 PATH 环境变量中,并通过“区分可执行文件名称”或利用“系统专属启动器”消除 python.exe 的同名冲突,从而实现命令行对两个版本的独立识别与精准调用。
一、PATH 环境变量的检索机制与冲突根源
当用户在终端或命令提示符中敲入 python 并回车时,操作系统并不会遍历整个硬盘寻找软件,而是依照系统环境变量 PATH 中声明的目录序列,从前向后逐一搜寻同名可执行文件。一旦在某个目录中首次匹配到 python.exe(在 Linux/macOS 下为 python),搜索便立即停止并运行该程序。
如果操作系统同时安装了 Python 3 和 Python 2,且两者的安装根目录都直接以默认文件名注册在 PATH 中,那么排在前面的路径就会完全“遮蔽”排在后面的版本。这就是直接输入 python 只能进入某一个固定版本,而另一个版本无法直接调用的根源。
二、Windows 环境下的共存配置完整操作
在 Windows 操作系统中,要让 Python 3 与 Python 2 完美并存,最推荐且健壮的方式是“物理重命名(或复制保留别名)+ 登记系统 PATH 环境变量”。以下是规范的四步实施流程。
第 1 步:定位安装目录与复制别名文件
假定系统已安装了 Python 3 与 Python 2,默认常见路径分别如下:
- Python 3 主目录:
C:\Python310或C:\Users\<用户名>\AppData\Local\Programs\Python\Python310 - Python 2 主目录:
C:\Python27
为了让命令行能够准确区分调用目标,进入两个版本的根目录中:
- 在
C:\Python27目录下,找到python.exe,在同目录下复制一份并重命名为python2.exe。 - 在
C:\Python310目录下,找到python.exe,在同目录下复制一份并重命名为python3.exe。
python.exe 改名。因为部分第三方库或打包工具仍会调用原生名称 python.exe,保留原文件能避免外部工具链异常。
第 2 步:配置系统环境变量 PATH
要使命令行在任何目录下都能运行这些命令,必须把两个 Python 根目录及其脚本目录(Scripts)登记到系统环境变量中。操作步骤如下:
- 按下快捷键
Win + R,在运行窗口中输入sysdm.cpl并回车,打开“系统属性”对话框。 - 切换到“高级”选项卡,点击右下方的“环境变量”按钮。
- 在“系统变量”区域中找到名为
Path(或PATH)的条目,点击“编辑”。 - 在弹出的编辑界面中,点击“新建”,将以下四组路径逐一添加进去:
C:\Python310(Python 3 主程序)C:\Python310\Scripts(Python 3 包管理工具与脚本)C:\Python27(Python 2 主程序)C:\Python27\Scripts(Python 2 包管理工具与脚本)
- 依次点击“确定”保存所有弹窗配置。
三、Linux / macOS 环境下的配置方法
在类 Unix 系统(如 Ubuntu、Debian、CentOS 或 macOS)中,配置环境变量与版本共存的核心是利用符号链接(Symbolic Links)和 Shell 配置文件(如 ~/.bashrc 或 ~/.zshrc)。
绝大多数 Linux 发行版与系统管理工具均已将 Python 3 默认命名为 python3,将 Python 2 命名为 python2。如果在终端中输入 python2 或 python3 提示找不到命令,通常只需在系统的标准 bin 目录下建立软链接,或者在环境变量中指定其安装路径。
# 1. 查找各版本的可执行文件绝对路径
which python3
which python2
# 2. 如果已在非标准目录安装(例如 /opt/python27 与 /usr/local/python310)
# 可通过软链接统一映射至系统标准检索目录:
sudo ln -s /usr/local/python310/bin/python3 /usr/local/bin/python3
sudo ln -s /opt/python27/bin/python /usr/local/bin/python2
# 3. 将对应目录导出至 PATH 环境变量(编辑 ~/.bashrc 或 ~/.zshrc)
export PATH="/usr/local/python310/bin:/opt/python27/bin:$PATH"
# 4. 重新加载配置文件
source ~/.bashrc
四、第三方包管理工具 Pip 的共存与隔离
除了 python 命令本身,环境变量中最容易引起混淆的是 pip 工具。在未明确指定版本的情况下直接运行 pip install,系统同样会依据 PATH 中的先后顺序随意把包安装进某个版本中,导致另一个版本找不到模块(出现 ImportError / ModuleNotFoundError)。
为了彻底避免依赖包乱装的隐患,日常开发中强烈建议使用 模块运行方式 调用 pip:
# 为 Python 3 安装第三方模块(稳妥标准做法)
python3 -m pip install requests
# 为 Python 2 安装第三方模块(稳妥标准做法)
python2 -m pip install requests
# 分别检查两个环境各自已安装的包列表
python3 -m pip list
python2 -m pip list
python -m pip 命令指示系统启动具体的 Python 解释器,再由该解释器去加载自身安装目录下的 pip 模块。这样无论系统的 PATH 怎么排列,依赖包都会 100% 精确安装到对应版本的 site-packages 文件夹中。
五、官方 py 启动器的使用替代方案
对于 Windows 用户,从 Python 3.3 起官方安装包中就自带了一个名为 py.exe 的启动器(Python Launcher)。如果计算机同时安装了多个 Python,在安装 Python 3 时只要勾选了“Install launcher for all users”,系统在 C:\Windows 目录下就会注入 py.exe。由于 C:\Windows 默认位于 PATH 中,用户甚至无需重命名任何文件即可快速调用:
- 运行默认 Python(通常为最新 Python 3):
py - 指定调用 Python 3:
py -3或py -3.10 - 指定调用 Python 2:
py -2或py -2.7 - 指定启动对应版本的 pip:
py -3 -m pip install <package>
如果脚本文件第一行带有 Shebang 说明(例如 #!/usr/bin/env python2),直接双击脚本或运行 py script.py,启动器还会自动识别该注释并切换到 Python 2 运行。
六、配置速查与日常避坑总结
| 功能维度 | Python 3 对应规范 | Python 2 对应规范 | 工程建议与防错注意 |
|---|---|---|---|
| 根目录环境变量 | C:\Python310 |
C:\Python27 |
建议将 Python 3 的路径放置在 PATH 较靠前的位置 |
| 脚本环境变量 | C:\Python310\Scripts |
C:\Python27\Scripts |
提供各版本专用命令行工具(如 wheel、pytest 等)支持 |
| 终端调用指令 | python3 或 py -3 |
python2 或 py -2 |
避免在未加前缀的情况下随意运行 python |
| 依赖包安装指令 | python3 -m pip install 包名 |
python2 -m pip install 包名 |
严禁盲目运行裸 pip install,防止安装错位 |
| 环境独立隔离 | python3 -m venv env_py3 |
virtualenv -p python2 env_py2 |
工程项目必须使用虚拟环境,防止系统级库污染 |
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













