如何在另一个环境中运行Python脚本并保持其原有环境?

9
我有两个脚本:script1.pyscript2.py
其中,script1在它的环境下(比如说,python 2)运行,而script2在它自己的环境下(比如说,python 3)运行。
我该如何让script1调用script2,并使用它对应的环境呢?
谢谢。

那么,你解决了吗? - Leonardo Miquelutti
@LeonardoMiquelutti 不行。不得不采取创建新进程并通过消息总线进行通信的方法。虽然这不是一个好的解决方案,但是有一个可行的解决方案总比什么都没有要好。 - Gulzar
我不得不将我的脚本分成3部分(Python 3,2和再次是3),但成功地通过单个命令行运行它们。完全同意@Gulzar的美丽无用部分 :) - Leonardo Miquelutti
1个回答

6
我能想到的解决办法是使用os.system来执行其他文件。

例如:

script1.py

#!/usr/bin/env python3
import os

os.system("script2.py")

and

script2.py

#!/usr/bin/env python2

print "script 2 running..."

print "script 2 running..."是一个很好的例子,因为python2.X使用没有括号的print,而python3.X使用带有括号的print()

重要的是注意两个脚本中的shebang(#!/usr/bin/env python3#!/usr/bin/env python2),它们指向正确的解释器或环境

os.system也可以使用参数,例如os.system("script2.py data.txt"),这对于想要运行带有参数的另一个脚本非常好。


这个在Windows上也会同样地工作吗?只需要在每个脚本的开头指定相关路径即可。 - Gulzar
@Gulzar 可以使用Python Launcher for Windows实现。 - michael_heath
@Gulzar,应该是这样的。 - sassy_rog

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接