Windows系统下怎么同时安装Python 2和Python 3
详细讲解在Windows系统下同时安装Python 2和Python 3的完整步骤,包括安装顺序、py启动器的使用、环境变量配置、pip管理以及常见问题的解决方法。
在一台Windows电脑上同时使用Python 2和Python 3是完全可行的。关键在于利用Windows版Python自带的py启动器(Python Launcher for Windows)来区分版本,再分别为两个版本管理各自的pip和第三方包。下面按照实际操作顺序,把从下载到验证的整个过程讲清楚。
一、为什么需要同时安装两个版本
虽然Python 2已经在2020年1月停止官方维护,但不少老项目、内部工具和第三方库仍然只能在Python 2下运行。同时,新项目几乎都基于Python 3。如果你手上同时有这两类工作,就需要让两个版本在同一台机器上各自独立运行,互不干扰。
Windows上实现这一点比Linux和macOS更简单,因为Python官方为Windows提供了一个叫py.exe的启动器,专门用来在多个Python版本之间切换。
二、安装前的准备
先确认两件事:
- 当前系统中是否已经安装了某个版本的Python。打开命令提示符(
Win+R输入cmd回车),分别执行python --version和py --version,看看有没有输出版本号。 - 如果已有旧版本且不再需要,建议先在"控制面板 → 程序和功能"中卸载干净,避免路径冲突。
然后到Python官网下载页面获取安装包。Python 2最后一个版本是2.7.18,Python 3建议下载当前的稳定版本。两个安装包都选择Windows installer(64-bit),如果系统是32位则选32-bit版本。
https://www.python.org/downloads/,在页面中可以找到Python 3最新稳定版和Python 2.7.18的下载链接。三、安装Python 3(建议先装)
建议先安装Python 3,原因是Python 3的安装程序默认会安装py.exe启动器,而且会把它放到系统目录,后续安装Python 2时启动器能自动识别。
双击Python 3安装包,在安装界面底部有两个复选框:
- Install launcher for all users——勾选。这会把
py.exe安装到C:\Windows\下,所有用户都能使用。 - Add Python 3.x to PATH——可以勾选,也可以不勾选。如果勾选,在命令行直接输入
python时会调用Python 3。后面我们主要用py命令来区分版本,所以这一项不是必须的。
点击"Customize installation"可以自定义安装路径。建议把Python 3装到容易辨认的目录,比如C:\Python39或C:\Python311(根据具体版本号),而不是默认的AppData深层目录。勾选"Install for all users"后安装路径会自动变为C:\Program Files\Python3x\,也可以手动改。
其余选项保持默认即可,点击Install等待完成。
四、安装Python 2.7
双击Python 2.7.18的安装包(.msi格式),安装界面比较传统。主要注意以下几点:
- 安装路径默认是
C:\Python27,保持即可。如果改了路径,后面配置环境变量时要对应修改。 - 在特性选择页面,确保"Register Extensions"和"Add python.exe to Path"这两项不要勾选。因为如果把Python 2也加入PATH,命令行输入
python时就会产生冲突——系统不知道该调用哪个版本。
安装完成后,py.exe启动器会自动检测到系统中存在的所有Python版本。
五、用py启动器切换版本
安装完成后,打开命令提示符,执行以下命令查看系统中已安装的Python版本:
py -0
示例输出:
-3.11-64 *
-2.7-64
带星号的是默认版本。接下来通过-2或-3参数指定要使用的版本:
py -2 --version
py -3 --version
示例输出:
Python 2.7.18
Python 3.11.5
运行Python 2脚本:
py -2 my_old_script.py
运行Python 3脚本:
py -3 my_new_script.py
如果脚本文件第一行写了shebang注释,py也会自动识别。比如脚本开头是#!/usr/bin/env python2,直接执行py my_script.py就会用Python 2运行。
六、分别管理pip和第三方包
两个Python版本各自带有独立的pip,安装第三方包时同样通过py命令区分:
py -2 -m pip install requests
py -3 -m pip install requests
上面两条命令分别把requests库安装到Python 2和Python 3的各自目录中,互不干扰。
查看某个版本下已安装的包:
py -2 -m pip list
py -3 -m pip list
升级pip本身:
py -2 -m pip install --upgrade pip
py -3 -m pip install --upgrade pip
pip install或pip3 install,因为它们指向哪个版本取决于PATH配置,容易搞混。始终用py -2 -m pip或py -3 -m pip最可靠。
七、环境变量的正确配置
如果在安装Python 3时勾选了"Add to PATH",系统PATH中已经有了Python 3的路径。此时在命令行直接输入python会启动Python 3。
如果你希望python命令默认指向Python 3,同时保留通过py -2使用Python 2的能力,只需要把Python 3的路径加到PATH中就行,不要同时加Python 2的路径。
手动检查和修改PATH
右键"此电脑"→"属性"→"高级系统设置"→"环境变量"。在"系统变量"中找到Path,双击编辑。确认其中包含Python 3的安装目录和Scripts子目录,例如:
C:\Python311
C:\Python311\Scripts
确认其中没有Python 2的目录(C:\Python27和C:\Python27\Scripts)。如果有,删掉它们。Python 2的使用完全交给py -2。
修改后打开新的命令提示符窗口(已打开的窗口不会读取新环境变量),验证:
python --version
示例输出:
Python 3.11.5
八、虚拟环境的使用
在实际项目中,建议为每个项目创建虚拟环境,而不是把所有包都装到全局目录。虚拟环境会绑定创建它时使用的Python版本。
用Python 3创建虚拟环境:
py -3 -m venv myproject_env
激活虚拟环境(Windows命令提示符):
myproject_env\Scripts\activate
激活后命令行前面会出现(myproject_env)前缀,此时python和pip命令都指向这个虚拟环境中的Python 3,不需要再加py -3。
Python 2不支持venv模块,需要用virtualenv:
py -2 -m pip install virtualenv
py -2 -m virtualenv mylegacy_env
mylegacy_env\Scripts\activate
退出虚拟环境:
deactivate
九、常见问题
1. 输入py提示"不是内部或外部命令"
说明py.exe没有正确安装。重新运行Python 3的安装程序,选择"Modify",确保勾选了"py launcher"。或者检查C:\Windows\py.exe是否存在。
2. py -0只显示一个版本
可能是另一个版本没有正确安装,或者安装时选择了"仅当前用户"而py.exe装在了系统级别。尝试用管理员权限重新安装缺失的版本,选择"Install for all users"。
3. 安装包时报SSL错误(Python 2)
Python 2.7自带的SSL模块版本较老,连接PyPI时可能失败。可以尝试指定国内镜像源:
py -2 -m pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
4. 两个版本的脚本入口冲突
比如Python 2和Python 3都安装了一个叫pytest的包,在命令行直接输入pytest只会执行PATH中排在前面的那个版本。解决方法是始终通过py -2 -m pytest或py -3 -m pytest来调用,或者在虚拟环境内使用。
十、小结
在Windows上同时使用Python 2和Python 3,整个过程可以归纳为:先装Python 3(带py启动器),再装Python 2(不加PATH),然后统一用py -2和py -3区分版本。包管理用py -X -m pip,项目开发用虚拟环境隔离。掌握这套方法后,两个版本可以在同一台机器上长期稳定共存,不会互相干扰。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









