隔离与区分
同时安装两个版本的关键在于将它们完全隔离,避免它们的可执行文件、库文件等相互干扰,这主要通过以下两点实现:

- 独立的安装路径:Python 2 安装在一个目录,Python 3 安装在另一个不同的目录。
- 不同的命令名:通过命令行工具,你可以明确地告诉系统你想使用哪个版本。
安装 Python 2 和 Python 3
推荐使用官方安装程序(最简单直接)
这是最简单、最不容易出错的方法。
安装 Python 3
- 访问 Python 官方下载页面:https://www.python.org/downloads/
- 下载最新的 Python 3.x 版本(Python 3.11)。
- 运行安装程序。
- 关键步骤:在安装界面,务必勾选 "Add Python 3.x to PATH"(将 Python 3.x 添加到系统环境变量),这会让你可以从命令行直接使用
python命令。
安装 Python 2
- 访问 Python 官方下载页面:https://www.python.org/downloads/
- 向下滚动页面,找到 "Looking for a specific release?"(寻找特定版本)部分。
- 下载最新的 Python 2.x 版本(Python 2.7.18)。
- 运行安装程序。
- 关键步骤:同样,务必勾选 "Add Python 2.7 to PATH"。
安装完成后,你的系统 PATH 环境变量中会同时包含 python 和 python2、python3 等可执行文件。

使用包管理器(Linux / macOS)
对于 Linux 和 macOS 用户,使用包管理器是更常见的做法。
Linux (以 Ubuntu/Debian 为例)
# 安装 Python 3 (通常是默认的) sudo apt update sudo apt install python3 python3-pip # 安装 Python 2 sudo apt install python2 python2-pip
macOS (使用 Homebrew)
# 安装 Homebrew (如果还没有) /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" # 安装 Python 3 brew install python # 安装 Python 2 brew install python@2
使用 Homebrew 安装后,可执行文件通常位于 /usr/local/bin,系统会自动处理路径问题。

验证安装和区分版本
打开你的终端(Windows 是命令提示符或 PowerShell,Linux/macOS 是 Terminal),运行以下命令来验证。
检查版本号
# 检查 Python 3 版本 (推荐使用这个) python3 --version # 或者 py --3 # Windows 上 py.exe 的用法 # 检查 Python 2 版本 python2 --version # 或者 py --2 # Windows 上 py.exe 的用法
你应该会看到类似 Python 3.11.4 和 Python 2.7.18 的输出。
检查可执行文件位置
# which 命令在 Linux/macOS 上使用 which python3 which python2 # where 命令在 Windows 上使用 where python3 where python2
你会看到它们指向不同的文件路径,这证明了它们是独立的。
检查 pip 版本
# Python 3 的 pip python3 -m pip --version # Python 2 的 pip python2 -m pip --version
注意:强烈建议使用 python -m pip 的方式来调用 pip,这能确保你使用的是对应 Python 版本的包管理器,避免混淆。
管理包(虚拟环境是最佳实践)
当两个版本共存时,最大的问题就是包的管理,为每个项目创建独立的虚拟环境是行业标准做法,它能彻底解决版本和依赖冲突的问题。
为 Python 3 项目创建环境
# 创建一个名为 my_py3_project 的环境 python3 -m venv my_py3_project # 激活环境 # Windows: my_py3_project\Scripts\activate # Linux/macOS: source my_py3_project/bin/activate # 激活后,命令行提示符前会出现 (my_py3_project) # 现在的 python 命令指向的是 Python 3 (my_py3_project) $ python --version Python 3.11.4 # 安装包,这个包只会安装在这个环境里 (my_py3_project) $ pip install requests # 退出环境 (my_py3_project) $ deactivate
为 Python 2 项目创建环境
# 创建一个名为 my_py2_project 的环境 python2 -m virtualenv my_py2_project # 激活环境 # Windows: my_py2_project\Scripts\activate # Linux/macOS: source my_py2_project/bin/activate # 激活后,命令行提示符前会出现 (my_py2_project) # 现在的 python 命令指向的是 Python 2 (my_py2_project) $ python --version Python 2.7.18 # 安装包,这个包只会安装在这个环境里 (my_py2_project) $ pip install some_old_library # 退出环境 (my_py2_project) $ deactivate
为什么虚拟环境如此重要?
- 隔离性:每个项目的依赖都独立,不会互相污染。
- 可复现性:可以轻松地重新创建一个完全相同的环境。
- 避免全局污染:不会把各种项目的包都装到系统全局的 Python 环境中。
配置 IDE(如 VS Code)
如果你使用 Visual Studio Code,它可以非常智能地处理多版本 Python。
- 安装 Python 扩展:在 VS Code 扩展商店中搜索并安装 "Python" 扩展(由 Microsoft 发布)。
- 选择解释器:
- 按
Ctrl+Shift+P(Windows/Linux) 或Cmd+Shift+P(macOS) 打开命令面板。 - 输入
Python: Select Interpreter并回车。 - 在弹出的列表中,你会看到所有已安装的 Python 解释器,包括
Python 3.x和Python 2.x。 - 为你的项目选择合适的版本。
- 按
- 自动检测:VS Code 通常能自动检测项目文件夹中的
.venv或venv文件夹,并自动切换到对应的解释器。
常见问题与解决方案
问题:在 Windows 上,python 命令到底指向哪个版本?
Windows 的安装程序会向 PATH 中添加 python.exe,如果先装了 Python 2,后装了 Python 3,python.exe 可能会指向 Python 3 的版本(因为后安装的路径可能被优先添加到 PATH),反之亦然。
解决方案:
- 使用
py.exe:Windows 自带一个启动器py.exe,它可以智能地管理多个版本。py --list:列出所有可用的 Python 版本。py --3 script.py:明确使用 Python 3 运行脚本。py --2 script.py:明确使用 Python 2 运行脚本。py -3:启动一个 Python 3 的交互式 shell。
- 使用
python3和python2:这是最明确、最推荐的方式,在任何情况下都不会混淆。
问题:如何运行一个 Python 脚本并指定版本?
-
直接调用解释器:
# 使用 Python 3 运行 python3 my_script.py # 使用 Python 2 运行 python2 my_script.py
-
在脚本头部(Shebang)(适用于 Linux/macOS): 在你的脚本第一行写入:
#!/usr/bin/env python3
然后给脚本执行权限:
chmod +x my_script.py,之后就可以直接./my_script.py运行,系统会自动使用python3。
| 任务 | Windows 命令 | Linux/macOS 命令 | 说明 |
|---|---|---|---|
| 检查 Python 3 版本 | python3 --version 或 py --3 --version |
python3 --version |
明确使用 Python 3 |
| 检查 Python 2 版本 | python2 --version 或 py --2 --version |
python2 --version |
明确使用 Python 2 |
| 安装 Python 3 包 | python3 -m pip install <package> |
python3 -m pip install <package> |
推荐方式,确保使用正确的 pip |
| 安装 Python 2 包 | python2 -m pip install <package> |
python2 -m pip install <package> |
推荐方式,确保使用正确的 pip |
| 创建 Python 3 环境 | python3 -m venv my_env |
python3 -m venv my_env |
创建隔离的开发环境 |
| 创建 Python 2 环境 | python2 -m virtualenv my_env |
python2 -m virtualenv my_env |
virtualenv 是 Python 2 的常用工具 |
遵循以上步骤,你就可以在同一个系统上稳定、清晰地同时使用 Python 2 和 Python 3,而不会造成混乱,记住“明确调用”和“虚拟环境”是两大黄金法则。
