使用pydev时,subprocess.call()不返回

时间:2013-01-17 20:06:20

标签: python powershell pydev

考虑下面运行powershell脚本的简单python程序。如果我从命令行启动python程序,它工作正常,即使我觉得奇怪的是它为返回值而不是0打印一个空行。但是,如果我从pydev运行这个python程序,脚本在调用后挂起{ {1}}。我在Windows 7下使用Eclipse SDK 4.2.1下的Pydev 2.7.0.Python版本是2.7.3。

subprocess.call()

我正在测试的powershell脚本非常简单:它打印路径然后返回0:

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")

所以回顾一下,我想我有两个问题,最重要的是当我在pydev下运行这个程序时Write-Host "$env:Path" exit 0 挂起的原因而另一个问题是为什么当我打印subprocess.call()时我得到一个空白而不是0。

1 个答案:

答案 0 :(得分:1)

我不是100%在这里,但exit只是杀了剧本?要在退出脚本时返回值,请使用return ..所以请尝试使用此PS脚本:

Write-Host "$env:Path"
return 0