我需要在Popen中运行python命令。问题是命令NEEDS必须在python3中运行,并且我需要它具有可移植性,这意味着我不能真正针对每种情况使用python3
别名...
我有一台计算机,其中python
是正确的版本,而其他计算机中,正确的版本是python3
。我试图在文件的开头插入#!/usr/bin python3
,然后以python
的身份运行,但是没有用。
我无法修改环境变量以将python3
更改为python
。我想知道是否有一种方法可以仅在Popen命令中检查我需要使用的方法,还是将python3
更改为python
的方法。
我尝试运行的Popen命令非常简单,不,我不能只是导入文件并将其用作类...它需要通过Popen运行。另外,不能选择virtualenv或类似的软件。
subprocess.Popen(['python', 'main.py'], shell=True, universal_newlines=True)
答案 0 :(得分:0)
shebang(显示要使用的解释器的第一行,例如#!/usr/bin/python
或#!/usr/bin/python3
)仅在您未明确选择解释器的情况下才受到认可:如果运行{{ 1}},操作系统正在调用特定的Python解释器,并将python foo.py
作为参数传递(它解释为应运行的脚本的名称);而当您运行foo.py
时,您是在告诉操作系统本身要使用哪个解释器来运行./foo.py
,这是通过查看shebang来完成的。
要将其留给操作系统选择,只需明确指定脚本名称:
foo.py