【问题标题】:Python script that can run from OSX Finder and Windows Explorer可以从 OSX Finder 和 Windows Explorer 运行的 Python 脚本
【发布时间】:2017-09-07 07:10:55
【问题描述】:

我有一堆有用的 Python3 脚本,可用于不同的操作系统环境。从终端调用时它们运行良好,但我想从 Windows Explorer 和 OSX Finder 中运行它们。在 Windows 中,这不是问题,因为 *.py 文件与已安装的解释器相关联。

对于 OSX,我遇到了一些问题。我尝试使用 shebang 线。

#!/usr/bin/python3

但 Finder 无法将其识别为脚本。如何让 Finder 将 *.py 文件识别为脚本?我对尽可能少的操作系统修改的最大可移植性感兴趣。

我还明确指定了上面的解释器位置。对于不同的操作系统,它将位于不同的位置。有没有办法让它成为多操作系统,这样如果它在一个位置找不到它,它会尝试另一个?假设我想从 Ubuntu 的 GUI 文件管理器之一运行它。

编辑:这是关于我的用例的更多信息。我想去一台新计算机并 git clone 我的 Python3 脚本仓库,并能够从 GUI 文件管理器中运行它们,而对新计算机的更改最少。

【问题讨论】:

  • 你的标题说 iOS finder btw,把它改成 osx 否则你会迷惑别人(比如我)
  • 我不确定,但我认为您必须运行 chmod +x file 才能使其可执行
  • 谢谢。我固定了标题。我希望它与所有 *.py 相关联,而不仅仅是一个文件。

标签: python macos finder


【解决方案1】:

要使脚本更便携,请使用 #!/usr/bin/env python3 作为 shebang。副作用是它将运行它在 $PATH (Unix StackExchange question on that subject) 中找到的第一个 python3 解释器


要从 finder 运行脚本,请尝试对文件进行 chmod。 IE。 chmod +x FILE


在这里找到另一种可能性:Link to the Blog

  1. 将此作为 Python 脚本“#!/usr/bin/env python”的第一行
  2. 将脚本文件的扩展名更改为“.command”,即 my_python_script.command
  3. 在终端中通过运行“chmod +x my_python_script.command”使 Python 脚本文件可执行
  4. 现在,当您在 Finder 中双击 Python 脚本时,它将打开一个终端窗口并运行。

我发现的替代方案是这样,但需要修改系统:Superuser question

【讨论】:

  • 感谢您的回答。它并没有完全回答这个问题。我添加了有关我的用例的更多信息。
  • 我之前也找到了最后几个链接。将其重命名为 *.command 并不理想,因为那时 Windows 将无法识别该脚本。似乎最好的方法是编写一个遍历整个目录的 bash 文件 chmod'ing 所有 *.py 文件。这样,我就到了一台新计算机,git clone 它,然后运行 ​​bash 脚本来设置一切。
  • 如果从 Unix 系统推送,通常 cmod 标志应该保留。如果您编辑文件并从 Windows 系统推送,则该标志将被删除。
猜你喜欢
  • 2014-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-29
  • 1970-01-01
  • 2023-03-20
  • 1970-01-01
相关资源
最近更新 更多