[英]Subprocess Popen to run python command
我需要在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)
shebang是显示要使用的解释器的第一行,例如#!/usr/bin/python
或#!/usr/bin/python3
-仅当您自己未明确选择解释器时才会受到尊重:运行python foo.py
,操作系统正在调用特定的Python解释器,并将foo.py
作为参数传递(它将解释为应运行的脚本的名称); 而当您运行./foo.py
,您是在告诉操作系统本身来确定要使用哪个解释器来运行foo.py
,这是通过查看shebang来完成的。
要将其留给操作系统选择,只需显式指定脚本名称:
subprocess.Popen(['./main.py'], universal_newlines=True)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.