繁体   English   中英

子进程Popen运行python命令

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM