Windows下Python2与Python3共存及pip使用指南

Ada
Ada
发布时间:2026-10-14| 5人浏览过
原创

本文详解Windows环境下Python2与Python3共存的最佳实践。通过官方提供的py.exe启动器,可灵活指定解释器版本运行脚本或执行pip命令。文章涵盖命令行参数、shebang指令及编码声明顺序,解决多版本环境下的包管理难题。

Windows下Python2与Python3共存方案

许多开发者希望学习Python3,但工作中仍需依赖Python2。在Windows系统中,如何实现这两个版本的共存并高效使用?

国内不少教程建议将其中一个python.exe重命名以区分版本(笔者也曾如此建议,现予以更正)。然而,这种做法存在重大隐患:重命名后的Python对应的pip将无法正常工作。

官方推荐的解决方案是什么?

实际上,Python社区早在几年前就提供了官方解决方案,只是国内部分资料尚未充分关注此方法。

当安装Python3(版本>=3.3)时,安装包会在系统中部署一个启动器py.exe,默认位于C:\Windows\目录下。该启动器允许用户指定使用Python2还是Python3来执行代码(前提是已正确安装这两个版本)。

假设有一个名为hello.py的Python文件,可以使用以下命令通过Python2运行它:

py -2 hello.py

同理,若需使用Python3运行该文件,命令如下:

py -3 hello.py

每次运行都添加-2或-3参数略显繁琐,因此py.exe启动器支持在代码文件中添加说明,指定该文件应由Python2还是Python3解释执行。具体方法是在代码文件的第一行添加:

#! python2

或者:

#! python3

这两行分别表示该文件由Python2或Python3解释执行。添加后,运行命令可简化为:

py hello.py

多版本环境下的pip使用指南

pip的使用

当Windows上同时存在Python2和Python3时,两者的pip可执行文件均名为pip.exe,因此不能直接使用pip install命令安装包。必须借助启动器py.exe指定pip版本,命令格式如下:

py -2 -m pip install XXXX

-2参数指定使用Python2,-m pip表示运行pip模块(即执行pip命令)。若需为Python3安装包,命令类似调整为:

py -3 -m pip install XXXX

关于#! python2与# coding: utf-8的顺序

Python2用户常遇到另一困惑:为在代码中使用中文,需在文件顶部添加编码声明。若同时需指定Python版本,这两行声明的顺序该如何安排?

#! python2必须置于第一行,编码声明可置于第二行。因此文件开头应类似如下结构:


#! python2
# coding: utf-8

掌握上述技巧后,Python2与Python3即可在Windows系统中和谐共存。

以上即为多版本Python共存时pip的正确使用方法,更多Python pip相关资源请关注本站其他文章。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。