2013-07-30 72 views
0

我写了一个Python脚本,它使用subprocess.Popen运行一些svn命令。例如:Python:subprocess.Popen永不返回

svn ls svn+ssh://url1/trunk 
svn cp svn+ssh://url1/trunk svn+ssh://url1/branch/1 --parents -m "blah" 

对于每一个命令,我创建一个subprocess.Popen对象:

p = subprocesp.Popen(cmd, shell=True, stdout=sp.PIPE, stderr=sp.STDOUT) 

,并等待它完成:

output  = p.communicate()[0].strip() 
return_code = p.returncode 

的问题对于一些svn cp命令在shell上立即失败以便复制不存在的回购站,p.communicate()永不返回

的额外信息:

  • 使用线程池时执行代码(multiprocessing.pool.ThreadPool
  • 该现象被menifested仅未能
  • 使用外壳,具有错误代码1完全相同的命令完成在不到两秒的时间内。

任何想法我在这里想念什么?

回答

1

奇怪的是,问题在于Eclipse。该脚本在shell中运行得非常好,但在Eclipse内部终端中永远等待。

+1

您的文章提示我使用Visual Studio测试相同的东西..在REPL中工作,但不是从VS2015中工作。 –