【问题标题】:subprocess - OSError [Errno 13] - although permissions seem ok - Python 2.7 / OSX子进程 - OSError [Errno 13] - 虽然权限似乎没问题 - Python 2.7 / OSX
【发布时间】:2015-08-05 17:31:27
【问题描述】:

我是子流程的新手。

当我跑步时:

subprocess.Popen(['/Applications/Calculator.app'])

我得到了 OSError。

当我检查 Calculator.app 的权限时,它们看起来很好 (drwxr-xr-x)。它说的是“轮子”而不是“管理员”或“员工”。

我在其他应用程序中也遇到此错误。

另一方面,我可以:

subprocess.call(['open', '/Applications/Calculator.app'])

还好……

我错过了什么?我应该检查什么?

谢谢!

【问题讨论】:

  • 第一行代码和第二行代码有什么区别??
  • 是我遗漏了什么还是两个命令相同?
  • 抱歉错字!我编辑了它,

标签: python macos python-2.7 subprocess


【解决方案1】:

这是一个更简单的调用:

subprocess.Popen(['open', '-a', 'Calculator'])

-a 选项告诉open Calculator 是一个应用程序。

【讨论】:

  • 感谢您提供更简单的版本。
【解决方案2】:

这是因为 MacOS X 桌面应用程序实际上是目录。可执行文件被埋在里面。

这行得通:

subprocess.Popen(['/Applications/Calculator.app/Contents/MacOS/Calculator'])

【讨论】:

  • 感谢您的回答!由于其他应用也会发生这种情况,您如何找到可执行文件?
  • @Diego 这几乎总是相同的模式:/Applications/SomeProgram.app/Contents/MacOS/SomeProgram。请注意,某些程序名称中有一个 空格,这反映在目录名称和可执行文件名称中。
  • 太棒了!!非常感谢!
猜你喜欢
  • 2014-07-15
  • 2015-09-14
  • 1970-01-01
  • 2018-02-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-14
  • 1970-01-01
相关资源
最近更新 更多