考虑下面的简单 python 程序,它运行一个 powershell 脚本。如果我从命令行启动 python 程序,它工作正常,即使我觉得它为返回值打印一个空行而不是 0 很奇怪。但是,如果我从 pydev 运行这个 python 程序,脚本在调用subprocess.call()
. 我在 Windows 7 下的 Eclipse SDK 4.2.1 下使用 Pydev 2.7.0。Python 版本是 2.7.3。
import subprocess
def run_powershell_script(script):
cmd = ['powershell',
'-ExecutionPolicy',
'RemoteSigned',
'-File',
script]
returncode = subprocess.call(cmd)
print "Done"
return returncode
if __name__ == "__main__":
print run_powershell_script("testscript.ps1")
我正在测试的 powershell 脚本非常简单:它打印路径然后返回 0:
Write-Host "$env:Path"
exit 0
所以回顾一下,我想我有两个问题,最重要的是为什么subprocess.call()
当我在 pydev 下运行这个程序时会挂起,另一个问题是为什么当我打印时returncode
我得到一个空行而不是 0。