如何使python脚本在osx上可执行?

hzl*_*rdo 4 python macos shell executable double-click

我只想将我的脚本制作为应用程序。双击运行而不是在终端中运行。我以前用 automator 完成过,但现在,在 el capitalan 上它不起作用。它只给出错误而没有解释。

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

"The action “Run Shell Script” encountered an error."
Run Code Online (Sandbox Code Playgroud)

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

#!/usr/bin/env python

chmod +x script.py
Run Code Online (Sandbox Code Playgroud)

解决了:

经过这两个步骤。我将“打开方式”更改为仅此文件的终端并更改了#!/usr/bin/env python,它可以工作。但是如果没有下面的两个步骤,它就不起作用,您需要按照所有步骤进行操作。

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

它对我有用。

小智 5

我已经改变了模式

sudo chmod +x file-name.py

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

#!/usr/bin/env python

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


Luc*_*eca 5

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

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

tell application "Terminal"
    do script with command "python /path/to/your/script.py"
end tell
Run Code Online (Sandbox Code Playgroud)

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

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

如果您想获得更高级的知识,请查看Platypus


pau*_*sm4 3

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

\n\n
\n

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

\n\n

选择 PythonLauncher 作为默认应用程序,通过查找器信息窗口打开脚本(或任何 .py 脚本),然后双击它。PythonLauncher 有各种首选项来控制脚本的启动方式。选项拖动允许您在一次调用中更改这些内容,或使用其首选项菜单全局更改内容。

\n
\n\n

附录:

\n\n
\n

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

\n\n

最新版本的 Mac OS X El Capitan 附带了开箱即用的 Python 2.7。

\n\n

您无需安装或配置任何其他内容即可使用 Python。\n 尽管如此,我强烈建议您在开始\n 为现实世界构建 Python 应用程序之前安装\n 下一节中描述的工具和库使用。特别是,您应该始终安装Setuptools,因为它使您可以更轻松地使用其他第三方Python 库。

\n\n

OS X 附带的 Python 版本非常适合学习,但\n\xe2\x80\x99s 不适合开发。

\n
\n\n

附录 2:

\n\n

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

\n\n\n\n

解决方法:

\n\n

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

\n\n
$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"\n\n$ vi ~/.profile => \n...  \nexport PATH=/usr/local/bin:/usr/local/sbin:$PATH\n\n$ brew install python\n
Run Code Online (Sandbox Code Playgroud)\n\n

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

\n