0

我有 OSX 并且正在从 Unix shell 运行 python 脚本

我正在运行一个应该打开应用程序的 python 代码。我一直在用 Firefox.app 进行测试并且一直在

Traceback (most recent call last):
File "/Users/brennan/Desktop/Coding/Wilix/wilix.py", line 453, in <module>
subprocess.call(["open -a "+cp2])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 493, in call
return Popen(*popenargs, **kwargs).wait()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 679, in __init__
errread, errwrite)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1228, in _execute_child
raise child_exception
OSError: [Errno 2] No such file or directory

我的代码是:

subprocess.call(["open -a "+cp2])

其中 cp2 是用户输入。(在这种情况下是 Firefox)

如果我 cd 进入程序目录然后执行

open -a Firefox

火狐打开正常。

如果我将代码更改为

subprocess.call(["open -a Firefox"])

我仍然收到错误消息。

4

3 回答 3

1

open -a Firefox作为一个参数传递,就好像您在 shell 中运行它一样:

$ "open -a Firefox"

您需要拆分项目:

subprocess.call(['open', '-a', 'Firefox'])
于 2013-09-22T19:49:07.693 回答
0

尝试给出 Firefox 应用程序的完整路径。

于 2013-09-22T19:43:34.083 回答
0

shell=True在没有或提供命令作为列表的情况下使用 subprocess.call 是错误的。请看一下文档中的第一个示例:

http://docs.python.org/2/library/subprocess.html

可能需要或不需要 Firefox 的完整路径。

于 2013-09-22T19:47:57.687 回答