【问题标题】:How to make python script executable on osx?如何使python脚本在osx上可执行?
【发布时间】:2016-08-02 12:54:00
【问题描述】:

我只想将我的脚本制作成一个应用程序。双击并运行而不是在终端中运行。我以前用 automator 做过,但现在在 el capitan 上它不起作用。只报错不解释。

当我尝试使用 automator 时,出现此错误:

"The action “Run Shell Script” encountered an error."

我也尝试了下面的技巧,但我仍然无法做到这一点。

#!/usr/bin/env python

chmod +x script.py

已解决:

经过这两个步骤。我仅将“打开方式”更改为终端 文件并更改了 #!/usr/bin/env python ,它可以工作。但是没有下面的两个步骤是不行的,你需要遵循所有 脚步。

在代码开头添加#!/usr/local/bin/python。然后运行 chmod +x myscript.py 在终端中。之后更改应用程序 打开终端。

它对我有用。

【问题讨论】:

  • 将你的脚本保存为script.command,然后试试看。
  • 挂我检查了那个页面,没有工作,我也试过了。
  • @hzleonardo:你应该把你遇到的错误放在你的问题中。
  • @l'L'l 我从 automator 得到的错误是““运行 Shell 脚本”操作遇到错误。”

标签: python macos shell executable double-click


【解决方案1】:

我改变了模式

sudo chmod +x file-name.py

然后在 file-name.py 的顶部添加以下行

#!/usr/bin/env python

然后通过运行./file-name.py 命令运行该文件,它就可以正常工作了。

【讨论】:

  • 注意——由于某种原因,这在通过系统范围的脚本菜单启动时不起作用。解决方法:直接在shebang中指定python命令,例如#!/usr/bin/python.
【解决方案2】:

快速逐步创建可点击的 .app 以启动您的 Python 脚本。

启动 Apple ScriptEditor(位于 /Applications/Utilities/)并在编辑器中输入以下内容:

tell application "Terminal"
    do script with command "python /path/to/your/script.py"
end tell

之后,只需点击保存并选择另存为应用程序。

Ps.:如果有人阅读本文知道如何摆脱启动 .app 时打开的终端窗口,请告诉我。

如果您想更高级,请查看Platypus。

【讨论】:

    【解决方案3】:

    假设安装了 Python,这应该可以工作:

    https://docs.python.org/2/using/mac.html

    选择 PythonLauncher 作为打开脚本的默认应用程序 (或任何 .py 脚本)通过 finder Info 窗口并双击 它。 PythonLauncher 有各种偏好来控制你的脚本 启动。选项拖动允许您将这些更改为一个 调用,或使用其首选项菜单来全局更改内容。

    附录:

    http://docs.python-guide.org/en/latest/starting/install/osx/

    Mac OS X 的最新版本 El Capitan 附带 Python 2.7 盒子。

    您无需安装或配置其他任何东西即可使用 Python。 话虽如此,我强烈建议您安装 开始之前在下一节中介绍的工具和库 构建 Python 应用程序以供实际使用。特别是,您 应始终安装 Setuptools,因为它使您更容易 使用其他第三方 Python 库。

    OS X 附带的 Python 版本非常适合学习,但 不利于发展。

    附录 2:

    Apple 对 El Capitan 进行了一些更改(包括 System Integrity Protection),这可能会导致安装失败,并出现臭名昭著的“找不到可安装的软件”。例如:

    解决方法:

    使用自制软件。这正是我上面引用的Installing Python on Mac OS X 所建议的:

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    
    $ vi ~/.profile => 
    ...  
    export PATH=/usr/local/bin:/usr/local/sbin:$PATH
    
    $ brew install python
    

    如果这对您不起作用,请告诉我。

    【讨论】:

    • 谢谢。我看到了那个页面。我使用的是python 2.7,但pylauncher没有附带它,我找不到任何下载链接。
    • 我不确定您是如何安装的,但请从此处下载您的 .dmg:python.org/download/releases/2.7.4
    • 我很久以前安装的,现在我有点害怕再次安装。如果我重新安装python会导致我的包丢失吗?
    • 再次感谢您的回答,但我对 python 没有任何问题。我只是找不到pythonlauncher。我尝试通过终端(easy_install,pip)安装它,但没有软件包。在 Library/Python 文件夹中它也不存在。所以重新安装似乎是唯一的方法,但是当我尝试重新安装时它会出错。 “没有找到要安装的软件”
    【解决方案4】:

    @https://stackoverflow.com/users/7885903/lucas-mendes-mota-da-fonseca

    要隐藏终端窗口,我相信您可以将 .py 重命名为 .pyw 并调用它。

    https://stackoverflow.com/a/34739687/6713477

    【讨论】:

      猜你喜欢
      • 2014-04-26
      • 2015-02-14
      • 2011-05-13
      • 1970-01-01
      • 2013-12-27
      • 2014-02-05
      • 2010-10-28
      • 2014-07-05
      相关资源
      最近更新 更多