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

时间:2015-02-23 20:19:55

标签: python eclipse subprocess p2

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 个答案:

答案 0 :(得分:0)

至少有两个问题:

  1. command1未加保留'\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...')