我想從命令行運行Eclipse來自動化一些項目導入,並且我遇到了pythons子流程的問題。子進程似乎忽略了我的命令參數,直接運行eclipse。使用Eclipse的Python子流程行爲
這裏就是我想要做的事:
subprocess.call(["C:/eclipse/eclipsec",
"-nosplash",
"--launcher.suppressErrors",
"-application org.eclipse.cdt.managedbuilder.core.headlessbuild",
"-data", workspace_dir,
"-import", project_dir])
但是當我運行這個Eclipse的只是打開,並且不執行導入。但是,如果我改變了命令:
subprocess.call(['eclipse_import.bat', workspace_dir, project_dir)])
其中eclipse_import.bat
是:
set workspace_dir=%1
set project_dir=%2
C:/eclipse/eclipsec -nosplash --launcher.suppressErrors -application org.eclipse.cdt.managedbuilder.core.headlessbuild -data %workspace_dir% -import %project_dir%
然後一切行爲完全按照我期望它。
關於什麼會導致差異的任何想法?
我標記了另一個答案作爲正式答案,但您的解決方案也工作得很好 – lucasbrendel 2014-12-03 21:52:25