如何在命令行中从Python 2.7切换到Python 3?

68

我正在寻找在Python 2.7和3.3之间切换的最佳方法。 我像这样从cmd中运行python脚本:

python ex1.py

我应该把"python"环境设置在哪里,使它指向Python 3.3或2.7?

我想知道是否有一种简单的方式可以通过cmd命令行在两个版本之间进行切换?

8个回答

173

不需要任何“技巧”。Python 3.3自带PyLauncher“py.exe”,将其安装在路径中,并将其注册为“.py”扩展名处理程序。使用它,脚本顶部的特殊注释告诉启动器要运行哪个版本的Python:

#!python2
print "hello"

或者

#!python3
print("hello")

从命令行:

py -3 hello.py

或者

py -2 hello.py

py hello.py本身将选择最新安装的Python,或者参考PY_PYTHON环境变量,例如set PY_PYTHON=3.6

请参阅Windows上的Python启动器


2
与Unix shebang兼容,您也可以使用#!/usr/bin/env python2#!/usr/bin/python2。但是,#!/usr/bin/python将不会使PyLauncher使用Python 2。 - InQβ
我打开命令提示符时没有py命令,即使我已经安装了Python2和Python3。 - undefined
@M.H. 在Windows上?你在安装过程中是否安装了Python启动器?另一个要检查的是你的PATH是否有语法错误。 - undefined

84
对于Windows 7,我只需将Python 3文件夹中的python.exe重命名为python3.exe并将路径添加到环境变量中。这样,我就可以执行python test_script.py,脚本将在Python 2.7上运行;而当我执行python3 test_script.py时,脚本将在Python 3上运行。
要将Python 3添加到环境变量中,请按照以下步骤进行操作:
  1. 右键单击“我的电脑”,进入属性
  2. 进入高级系统设置
  3. 单击环境变量,编辑PATH并添加您的Python 3安装目录的路径。
比如说,

enter image description here


6
最好复制python.exe并将其重命名为python3.exe,这样在使用Python 3的IDLE、控制台和其他依赖于python.exe的工具时可以避免错误。 - mand
2
最好不要使用重命名技巧,而是使用安装在Python中的PyLauncher。请参见我的答案。 - Mark Tolonen
生命拯救者答案 - Just code

3

如果您的路径中同时存在python 2和3,您可以将Python27文件夹提升到路径中,这样它会首先搜索并执行python 2。


2

1

只需将两者都添加到环境变量中,然后您需要将所需版本移动到顶部


0

你正在使用Python 3+版本吗?

  1. 进入你的项目路径
  2. 运行 py -[版本号] 并按回车键 -> 这将打开Python的终端(类似于)

愉快的编程!


0

有比上述所有方法更简单的方法;您可以使用PY_PYTHON环境变量。 从cmd.exe shell内部执行;

对于最新版本的Python 2

set PY_PYTHON=2

针对最新版本的Python 3

set PY_PYTHON=3

如果您希望它是永久的,请在控制面板中进行设置。或者在cmd.exe shell中使用setx而不是set。

2
这对我不起作用...两个Python都在路径中,这将是优雅/期望的解决方案。我该怎么做才能让它正常工作? - user2305193
@user2305193 这个变量被 PyLauncher 使用。请查看我的答案。 - Mark Tolonen
这是用 py 调用的吗? - user2305193
@user2305193 这是 Python 3 中安装的 pylauncher 的一部分。如果您已将 3.3 或更高版本作为系统范围内的安装,则它将位于您的路径上。如果没有安装,您需要将其添加到您的路径中。 - ehambright
@ehambright 抱歉,可能问题有点傻,但是 pylauncher 怎么称呼呢?我在设置本地变量(PY_PYTHON)后,在控制台中应该输入什么? - user2305193
1
@user2305193 - 你在控制台中输入“py”。启动器的名称是py.exe。如果你为所有用户安装了它,它将位于%SYSTEMROOT%。如果没有,我认为它将在你安装Python 3的地方,尽管我不确定100%。 - ehambright

-5

你可以尝试将python3文件夹中的python可执行文件重命名为python3,如果它以前被命名为python... 这对我有用


3
这似乎并没有为现有的答案增添任何新内容。 - lfurini

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接