使用 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 不存在
至少有两个问题:
command1
里面没有转义 '\t'
。 '\t' 是 Python 中的制表符——单个字符。如果你想要两个字符(反斜杠和 t
而不是)然后转义反斜杠:'\t'
或使用原始字符串文字 r'\t'
例如:
program = r'C:\ti\ccsv6\eclipse\eclipsec.exe'
如果您传递一个列表,那么它应该恰好是每个项目的一个命令行参数:[command, 'arg1', 'arg 2', '...']
。在 Windows 上,您可以将命令作为字符串传递:
subprocess.check_call(r'C:\ti\ccsv6\eclipse\eclipsec.exe '
r'-application org.eclipse.equinox.p2.director -uninstallIU ...\t...')
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 不存在
至少有两个问题:
command1
里面没有转义'\t'
。 '\t' 是 Python 中的制表符——单个字符。如果你想要两个字符(反斜杠和t
而不是)然后转义反斜杠:'\t'
或使用原始字符串文字r'\t'
例如:program = r'C:\ti\ccsv6\eclipse\eclipsec.exe'
如果您传递一个列表,那么它应该恰好是每个项目的一个命令行参数:
[command, 'arg1', 'arg 2', '...']
。在 Windows 上,您可以将命令作为字符串传递:subprocess.check_call(r'C:\ti\ccsv6\eclipse\eclipsec.exe ' r'-application org.eclipse.equinox.p2.director -uninstallIU ...\t...')