1

我正在开发一个名为 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)

请帮助。

提前致谢

4

2 回答 2

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)
于 2013-02-27T05:20:12.980 回答
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)
于 2013-02-27T05:17:02.577 回答