在 CMD 中“python”启动 Python 3.3,“py”启动 Python 2.7,我该如何更改?

Posted

技术标签:

【中文标题】在 CMD 中“python”启动 Python 3.3,“py”启动 Python 2.7,我该如何更改?【英文标题】:In CMD "python" starts Python 3.3, "py" starts Python 2.7, how do I change this? 【发布时间】:2014-02-10 23:49:03 【问题描述】:

全新的 Python,在我开始弄乱东西之前,只需设置和安装东西。我的理解是 Python 2.7 和 Python 3.3 之间存在一些显着差异/不兼容性,尽管这两个版本都很好用,所以我认为最好安装 both(在它们自己的安装目录中)。

安装时,我使用了新的 3.3 功能,安装程序为我设置了 PATH 变量,但 2.7 不存在此选项。安装完这两个版本后,我尝试了快速测试,打开命令提示符,然后输入python 以调出交互式会话,正如我所希望的那样,它调出了 python 3.3。

我也知道较短的py 命令。但是,当我在命令提示符下尝试 py 时,它会显示 python 2.7。我可以使用py -3 来调出 3.3,但这使得它比它需要的更长,并且鉴于我将主要处理 3.3 版,我想要py @987654327 @ 两者都会启动 Python 3.3 交互式会话。

我对 Window 的 PATH 系统有些熟悉,但我不明白为什么会这样。如何设置它,以便 both pypython 在输入到 Windows 命令提示符时,将启动 Python 3.3 交互式会话,除非另有说明,例如通过py -2之类的东西?

谢谢。

【问题讨论】:

琐事:默认情况下——如果它没有被环境变量、ini 文件或参数覆盖——Python 启动器将始终首选 Python 2 而不是 Python 3 安装(如果两者都可用)。之所以如此,是因为在源代码中,对版本 2 的检查只是 comes first。 对我来说恰恰相反。 py 打开 python 3.8.2 和 python 打开 python 2.7.6 【参考方案1】:

py是Windows Python launcher,它可以启动任何 Python版本。

在大多数系统上,py 配置为默认启动 Python 2.7(如果存在)(这是默认设置,但 Python 3.6 和更新版本除外,其中将运行 Python 3)。如果你想改变它,你有两个选择:

    设置environment variable; PY_PYTHON=3 将使 py 运行最新的 Python 3 解释器。

    在您的应用程序目录中创建一个文件py.ini,内容如下:

    [defaults]
    python=3
    

    这与PY_PYTHON 环境变量的效果相同。通常,您的应用程序目录位于 C:\Documents and Settings\[username]\Application DataC:\Users\[username]\AppData\Local\py.ini,具体取决于 Windows 版本。

您还可以在脚本(第一行)中添加 #! shebang 行,以告诉启动器在双击此类文件时使用 Python 3:

#! python3

py 在安装了多个 Python 3 解释器时也可以配置为使用特定的 Python 版本。

【讨论】:

成功了,谢谢。我使用了第一个选项,因为它看起来“更干净”。 第一行#! python3 对我不起作用,为什么? @zhangxaochen 这适用于我在 Win7 上:#! /usr/bin/python3 不错的答案。有关详细信息,请参阅 pep-0397、***.com/questions/15912063/… 和 ***.com/a/13533958/1593924 如果我想使用 python 而不是 py 我的 vscode 扩展一直尝试使用 python 并返回 not found【参考方案2】:

“py”是python启动器,你可以通过添加参数-2-3来选择要启动的版本,请参阅下面的帮助说明:

C:\> py -h
Python Launcher for Windows Version 3.3.2150.1013

usage: py [ launcher-arguments ] script [ script-arguments ]

Launcher arguments:

-2     : Launch the latest Python 2.x version
-3     : Launch the latest Python 3.x version
-X.Y   : Launch the specified Python version

例如,在我的机器上,py 默认启动 python 2,添加 -3 使其启动 python 3:

C:\> py
Python 2.7.4 |Anaconda 1.5.0 (32-bit)| (default, Apr  9 2013, 12:19:24) [MSC v.1
500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

C:\> py -3
Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>

【讨论】:

我不认识这个 +1 伙伴。 我了解如何选择带参数的版本,但目前py 没有参数默认为 2.7 版,就像你的一样,而我希望它默认为 3.3 版,我会最多使用 3.3,pypy -3 略短。这可能吗? @user2649607,我想将其设为批处理文件或快捷链接,然后将其固定到任务栏或开始菜单。此外,我想使用autohotkey将程序的启动绑定到某个热键,这样我就可以通过按ctrl+shift+p(或任何你喜欢的)来启动它

以上是关于在 CMD 中“python”启动 Python 3.3,“py”启动 Python 2.7,我该如何更改?的主要内容,如果未能解决你的问题,请参考以下文章

通过python脚本在虚拟机cmd中发送DOS命令

Python启动Windows cmd(.bat)命令行并kill进程

Python启动Windows cmd(.bat)命令行并kill进程

python爬虫随笔—启动爬虫与xpath

cmd 切换python版本

python自动运行cmd,bat文件