【发布时间】:2016-11-15 01:11:51
【问题描述】:
背景
我有一些 Python 脚本使用仅适用于 Python 2.7 的库,因此我希望能够在 Python 2.7 版中运行这些脚本。
我在想如果我可以在我的 Python 文件顶部放置一些代码来检测它是否在 Python 3 中运行并且如果是的话在版本 2.7 中自行执行 .这可能吗?
例如,伪代码是:
if (self.getPythonVersion != 2.7):
os.execute('python27 ' + os.cwd + 'script.py')
exit()
编辑:这是供我个人使用,不用于分发。
回答
我在下面使用了 mgilson 的答案来让它为我工作。我无法让 os.exec() 工作,但我没有花很长时间。第二个脚本对我有用。以下是我使用并为我工作的:
if sys.version_info[:2] > (2, 7):
code = subprocess.call(['python27', sys.argv[0] ])
raise SystemExit(code)
【问题讨论】:
-
你为什么要这样做?
-
我安装了两个 python 版本,并且一些脚本使用仅适用于 Python2.7 的库,因此我需要在 Python 2.7 中运行这些库
-
那么您现在如何运行它们?通常我会使用
python2 script.py来运行我的脚本,所以我看不出这会是什么问题。 -
我使用一个.bat文件来指定python27。我想让它能够通过双击来运行。原因是我与同事共享这些脚本,他们最好不必采取任何额外的步骤来运行脚本。
-
“与同事共享这些脚本”在某种程度上是分布式的,
.py文件打开的默认程序完全基于运行它们的计算机的设置。这些库是您使用的第 3 方吗?如果是这样,您如何确定您的同事也安装了这些库。如果您想制作“点击运行”应用程序,只需将其打包到.exe。
标签: python python-2.7 python-3.x