我正在使用软件名称Foundry Nuke。我在Mac OSX中传递命令行参数时遇到麻烦。
如果我使用以下命令,它可以正常工作并启动Nuke软件。
subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8'], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
但是如果我为命令添加参数,它就不起作用。
subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8', '-t /.../somepath/init.py', '%s %s' % (someArg1, someArg2)], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
请帮助。
提前致谢
答案 0 :(得分:1)
每个单独的参数都需要是列表中的单独项目。
subprocess.Popen(['Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8',
'-t', '/.../somepath/init.py', # not '-t /.../somepath/init.py'
someArg1, someArg2, # not '%s %s'%(someArg1, someArg2)'
], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
答案 1 :(得分:0)
要添加参数,请在列表中添加额外的项目:
subprocess.Popen([
'Application/Nuke6.3v8/Nuke6.3v8.app/Contents/MacOS/Nuke6.3v8',
'-t', '/.../somepath/init.py',
some_arg_1, some_arg_2,
], stdin=subprocess.PIPE, stdout=subprocess.PIPE)