【问题标题】:Dealing with Multiple Python Versions--- do not run independently处理多个 Python 版本——不要独立运行
【发布时间】:2013-01-07 01:10:00
【问题描述】:

我的计算机(操作系统:Windows 7)上安装了 Python 2.7(我的首选版本)和 3.3(我的编程课程中使用的版本)。直到某一点,他们独立工作得很好。

有一天,我的一个程序(在 3.3 中)出错并崩溃了(它在命令提示符中,而不是在 IDLE 中)。之后,我的所有 3.3 程序,当我尝试编辑它们(使用 IDLE 编辑)或运行它们(在命令提示符中)时,它们将作为 2.7 程序打开/运行。这是一个问题,因为 2.7 和 3.3 之间的一些语法和其他差异。

如何告诉我的 3.3 程序明确使用 Python 3.3?

现在,我要做的就是打开 IDLE(作为空白文件,而不是特定程序),然后在 IDLE 中使用Open 选项。另外,用命令处理器运行程序是不可能的。

我查了一下,看到了一些关于使用 #!/usr/bin/env 的信息,但我不确定如何使用它。 Python 3.3 安装在以下文件夹中:C:\Python3.3(即文件路径)。

谢谢!

【问题讨论】:

    标签: python-3.x python-2.7


    【解决方案1】:

    你可以使用shebang lines:

    #! /usr/bin/env python2
    

    对于 Python 2.x 脚本和:

    #! /usr/bin/env python3
    

    适用于 Python 3.x 脚本。您可以使用更具体的版本,例如 python3.3

    你可以configure default Python version

    【讨论】:

    • 我要把它放在程序的开头吗?
    • @F3AR3DLEGEND:点击第一个链接:“如果脚本文件的第一行以#!开头,则称为“shebang”行。”跨度>
    • 当我把#! /usr/bin/env python3.3放在我的程序开头并运行它时,它仍然以2.7运行......所以我不确定如何实现它。
    • @F3AR3DLEGEND:以py your_script.py 运行它或确保pylauncher 与.py 扩展相关联。阅读docs.python.org/3/using/…
    【解决方案2】:

    您应该在此处关注 Windows 特定功能。直到最近,#! 方式才对基于 Unix 的操作系统有用。

    Python 3.3 正是为此目的引入了Python Launcher for Windows。在您的机器上安装 Python 3.3 后,安装程序将 py.exepyw.exe 启动器复制到 c:\Windows,并且 .py.pyw 扩展与启动器相关联。

    这样,如果.py 文件没有通过 Python 解释器显式启动,则使用 Python Launcher。您也可以显式启动py script.py

    如果没有关于 Python 版本的信息,则使用最高的 Python 2.x。有两种方法可以告诉启动器您要启动 Python 3:1) 显式 py -3 script.py,2) 将 #!python3 写入 script.py 内的第一行。

    想要的 Python 版本可以更详细(执行 Python 的特定版本)。请参阅提到的文档。我还在 Experts Exchange 的文章 Do you know the "Python Launcher for Windows"? 中总结了 我的 惊讶。

    【讨论】:

      【解决方案3】:

      您可以从命令行使用特定版本的 python 启动,方法是使用 'py' 后跟版本标志(即 -2 或 -3)

      以下是您可以执行的操作的示例:

      Python 2

      >>> py -2 your_script.py
      

      Python 3

      >>> py -3 your_script.py
      

      【讨论】:

        【解决方案4】:

        python 3.2 的 Python 文档提供了帮助我分别调用不同的 python 2.7 和 3.3 的信息。

        http://docs.python.org/3/using/windows.html#customizing-default-python-versions

        【讨论】:

          【解决方案5】:

          您可以通过运行py filename.py 在Python3.3 中调用python 解释器,而如果您在Python 2.7 中运行它们,则只需运行python filename.py

          在我的 windows 盒子上,我有小批量脚本(称为 python2 和 python3),它们调用相关的 python 源。

          filename:    python3.bat
          code:        C:\Python32\python.exe %*
          

          【讨论】:

            最近更新 更多