【问题标题】:forcing python version in windows在 windows 中强制 python 版本
【发布时间】:2011-11-13 16:01:10
【问题描述】:

我知道如何在 python 脚本中编写什么来告诉 unix 框运行哪个版本的 python (#!/usr/bin/env python3.2),但是我如何在 Windows 中执行此操作。我将通过 distutils 将一个程序部署到安装了 python2.7 和 3.2 的 windows 盒子。我需要强制它使用 2.7

谢谢!

【问题讨论】:

    标签: python deployment version


    【解决方案1】:

    即使在带有 shebang (#!) 的 unix 上,您也不会强制在哪个版本下运行。如果程序不直接执行 (./my.py) 而是像 python2 my.py 一样运行,那么 Python 2 仍将被使用。

    我建议最安全的方法是检查脚本开头的版本,如果不合适,则使用错误消息退出,例如:

    if sys.version_info[:3] < (3,2,0):
        print('requires Python >= 3.2.0')
        sys.exit(1)
    

    【讨论】:

    • 感谢版本检查声明。我将在我的所有脚本中使用它。对于我使用 distutils 分发的这个程序,我的期望是用户只需单击它即可运行它。当它以这种方式运行时,我怎样才能让它以正确的版本启动?
    • @LanceCollins。没问题。恐怕我已经很久没有在 Windows 上做任何值得注意的事情了。可能有一个更优雅的解决方案,希望有人会想出它,但一个简单的直接想到的方法就是用一个简单的.bat 发送你的程序,它只调用path_to_python2 my.py,明显的缺点是你需要提前知道path_to_python2。看看stackoverflow.com/questions/341184/…,那里的一些想法可能会对你有所帮助。
    • 添加代码以查找 3.2 二进制文件的位置(在注册表中查找?)并使用 3.2 二进制文件自行执行脚本会更好。
    • @BryanOakley。是的,这是个好主意。 +1
    • 我喜欢 .bat 文件的想法。我会试一试。当我有更多时间时,我会看看我是否无法弄清楚如何找到二进制文件并以这种方式运行它。好主意!谢谢!
    猜你喜欢
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-07
    • 1970-01-01
    • 2016-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多