使用 python 和 subprocess.call 调用 eclipsec.exe 安装 p2 插件

Calling eclipsec.exe to install p2 plugin using python and subprocess.call

import subprocess
print ("this is test installer")
program = "C:\ti\ccsv6\eclipse\eclipsec.exe"
command1 = "-application org.eclipse.equinox.p2.director -uninstallIU        org.eclipse.(...).feature.group -destination C:\ti\ccsv6\eclipse -profile epp.package.cpp -noSplash"
command_run = subprocess.call([program,command1]) 

这是我目前正在 运行 卸载插件的代码,这一行可以在命令提示符下运行。但是,如果我使用 python,它会打开 eclipse 并且不会执行,并给我错误 dvtLogOptions.xml 不存在

至少有两个问题:

  1. command1 里面没有转义 '\t' 。 '\t' 是 Python 中的制表符——单个字符。如果你想要两个字符(反斜杠和 t 而不是)然后转义反斜杠:'\t' 或使用原始字符串文字 r'\t' 例如:

    program = r'C:\ti\ccsv6\eclipse\eclipsec.exe'
    
  2. 如果您传递一个列表,那么它应该恰好是每个项目的一个命令行参数:[command, 'arg1', 'arg 2', '...']。在 Windows 上,您可以将命令作为字符串传递:

    subprocess.check_call(r'C:\ti\ccsv6\eclipse\eclipsec.exe '
        r'-application org.eclipse.equinox.p2.director -uninstallIU ...\t...')