【问题标题】:How to switch between python 2.7 to python 3 from command line?如何从命令行在 python 2.7 和 python 3 之间切换?
【发布时间】:2013-08-06 04:09:52
【问题描述】:

我正在尝试找到在两个 python 编译器(2.7 到 3.3)之间切换的最佳方式。 我像这样从 cmd 运行 python 脚本:

python ex1.py

在哪里设置窗口环境变量中的“python”环境指向 python 3.3 或 2.7?

我想知道是否有一种简单的方法可以从 cmd 行在两个版本之间切换?

【问题讨论】:

    标签: python windows command-line cmd


    【解决方案1】:

    对于 Windows 7,我只需将 Python 3 文件夹中的 python.exe 重命名为 python3.exe 并将路径添加到环境变量中。使用它,我可以执行 python test_script.py 并且脚本使用 Python 2.7 运行,当我执行 python3 test_script.py 时,它会在 Python 3 中运行脚本。

    要将Python 3 添加到环境变量中,请按照以下步骤操作 -

    1. 右键单击我的电脑并转到Properties
    2. 转到Advanced System Settings
    3. 单击Environment Variables 并编辑PATH 并将路径添加到您的Python 3 安装目录。

    例如,

    【讨论】:

    • 最好将python.exe复制一份,并将副本命名为python3.exe,这样可以避免在使用python 3的IDLE、控制台等依赖python.exe的东西时出错
    • 最好不要使用重命名技巧,使用 Python 安装的 PyLauncher。看我的回答。
    • 救命稻草答案
    【解决方案2】:

    不需要“技巧”。 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.

    Python Launcher for Windows

    【讨论】:

    • 兼容Unix shebang,也可以使用#!/usr/bin/env python2#!/usr/bin/python2。但是,#!/usr/bin/python 不会让 PyLauncher 使用 Python 2。
    【解决方案3】:

    您可以尝试将python3文件夹中的python可执行文件重命名为python3,也就是说如果它正式命名为python......它对我有用

    【讨论】:

    • 这似乎没有为现有答案添加任何新内容。
    【解决方案4】:

    它们是您可以在 python 3、虚拟环境中使用 py 命令 (py-launcher) 或配置默认 python 系统路径的 3 种方法。为了便于说明,您可以查看教程https://www.youtube.com/watch?v=ynDlb0n27cw&t=38s

    【讨论】:

      【解决方案5】:

      如果您的路径中同时包含 python 2 和 3,您可以在路径中向上移动 Python27 文件夹,以便它首先搜索并执行 python 2。

      【讨论】:

        【解决方案6】:

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

        对于最新版本的 Python 2

        set PY_PYTHON=2
        

        对于最新版本的 Python 3

        set PY_PYTHON=3
        

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

        【讨论】:

        • 这对我不起作用......两条蟒蛇都在路径中,这将是优雅/理想的解决方案。我该怎么做才能使这项工作准确无误?
        • @user2305193 此变量由 PyLauncher 使用。看我的回答。
        • 这就是py?
        • @user2305193 它是与 Python 3 一起安装的 pylauncher 的一部分。如果您将 3.3 或更高版本作为系统范围的安装安装,它将在您的路径上。如果没有,则需要将其添加到路径中。
        • @user2305193 - 您在控制台中输入“py”。启动器的名称是 py.exe。如果您为所有用户安装它,它将位于 %SYSTEMROOT% 中。如果你没有,我想它会在你安装 python 3 的地方,虽然我不确定 100%
        【解决方案7】:

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

        【讨论】:

          【解决方案8】:

          您使用的是 Python 3+ 版本吗?

          1. 转到您的项目路径
          2. 运行 py -[version_number_here] 并按 Enter -> 这将打开 Python 的终端(有点)

          快乐编码?

          【讨论】:

            猜你喜欢
            • 2016-04-13
            • 1970-01-01
            • 2017-03-13
            • 1970-01-01
            • 2011-05-19
            • 1970-01-01
            • 2015-07-26
            • 2021-07-15
            • 1970-01-01
            相关资源
            最近更新 更多