【发布时间】:2014-11-12 10:52:44
【问题描述】:
我有一个从 mssql 数据库读取数据并将读取数据传递给 some.exe 的子进程的脚本。
数据获取工作正常,但是一旦它应该开始 proc = subprocess.(["C:\\absolute\\path\\some.exe ", fetched_data]) proc.wait() 它似乎会跳过它并继续下一个 "fetched_data".. 我也尝试使用 subprocess.call(["C:\\absolute\\path\\some.exe ", fetched_data])
如果我在控制台 (windows cmd) 中启动 python 并执行完全相同的操作。
为什么在脚本中调用子进程不起作用,如果在控制台中手动发出它会起作用?
编辑:问题是在脚本中启动的子进程再次使用了another.exe,子进程找不到它(因为它使用了python路径)。从some.exe 和another.exe 所在的目录启动时,脚本运行良好。
【问题讨论】:
-
您确定在每种情况下都使用相同版本的 python 吗?有些人的电脑里有多条蟒蛇。
-
你有完整的代码吗?您确定您的代码实际上要进入子流程行吗?有一个
print "test"来确认它实际上正在进入子流程 -
@Paul 是的,我已经明确检查过了。 @sumshi 我可以发布代码,但我认为没有必要。我在子进程调用之前和之后都打印了,它的打印没有延迟或输出
some.exe
标签: python windows python-3.x subprocess pymssql