子进程 - OSError [Errno 13] - 虽然权限似乎没问题 - Python 2.7 / OSX
subprocess - OSError [Errno 13] - although permissions seem ok - Python 2.7 / OSX
我是子流程的新手。
当我运行:
subprocess.Popen(['/Applications/Calculator.app'])
我收到 OSError。
当我检查 Calculator.app 的权限时,它们看起来很好 (drwxr-xr-x)。它说 'wheel' 而不是 'admin' 或 'staff'.
我在使用其他应用程序时也出现此错误。
另一方面我可以做:
subprocess.call(['open', '/Applications/Calculator.app'])
就好了...
我错过了什么?我应该检查什么?
谢谢!
那是因为 MacOS X 桌面应用程序实际上是目录。可执行文件被埋在里面。
这个有效:
subprocess.Popen(['/Applications/Calculator.app/Contents/MacOS/Calculator'])
这是一个更简单的调用:
subprocess.Popen(['open', '-a', 'Calculator'])
-a
选项告诉 open
Calculator
是一个应用程序。
我是子流程的新手。
当我运行:
subprocess.Popen(['/Applications/Calculator.app'])
我收到 OSError。
当我检查 Calculator.app 的权限时,它们看起来很好 (drwxr-xr-x)。它说 'wheel' 而不是 'admin' 或 'staff'.
我在使用其他应用程序时也出现此错误。
另一方面我可以做:
subprocess.call(['open', '/Applications/Calculator.app'])
就好了...
我错过了什么?我应该检查什么?
谢谢!
那是因为 MacOS X 桌面应用程序实际上是目录。可执行文件被埋在里面。
这个有效:
subprocess.Popen(['/Applications/Calculator.app/Contents/MacOS/Calculator'])
这是一个更简单的调用:
subprocess.Popen(['open', '-a', 'Calculator'])
-a
选项告诉 open
Calculator
是一个应用程序。