【发布时间】: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
我知道如何在 python 脚本中编写什么来告诉 unix 框运行哪个版本的 python (#!/usr/bin/env python3.2),但是我如何在 Windows 中执行此操作。我将通过 distutils 将一个程序部署到安装了 python2.7 和 3.2 的 windows 盒子。我需要强制它使用 2.7
谢谢!
【问题讨论】:
标签: python deployment version
即使在带有 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)
【讨论】:
.bat 发送你的程序,它只调用path_to_python2 my.py,明显的缺点是你需要提前知道path_to_python2。看看stackoverflow.com/questions/341184/…,那里的一些想法可能会对你有所帮助。