当前位置: 首页 > 面试题库 >

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

谈阎宝
2023-03-14
问题内容

我只想将我的脚本作为应用程序。双击运行,而不是在终端中运行。我以前用automator做到了,但是现在,在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在终端中运行
。之后,更改应用程序以打开终端。

它为我工作。


问题答案:

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

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

选择PythonLauncher作为默认应用程序,以通过finder信息窗口打开脚本(或任何.py脚本),然后双击它。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:

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

  • http://trac.wxwidgets.org/ticket/17203

解决方法:

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

$ /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

如果这不适合您,请告诉我。



 类似资料:
  • 问题内容: 这个问题已经在这里有了答案 : 8年前关闭。 可能的重复: 在Windows上设置Python,不要在cmd中键入python 当我在Linux甚至从命令行的Mac OS上使用python时,我会利用shebang并直接运行一些脚本,例如:。我确实需要赋予此脚本可执行权限,仅此而已。 现在,我刚刚在Windows 7上安装了Python 3.1.2,并且希望能够从命令行执行相同的操作。

  • 问题内容: 需要明确的是,不仅要“运行python脚本”,还要使我的python脚本成为可以在其他编程语言或平台中使用的“可执行”或“可调用”程序。可能更像API。 问题是我在Java中实现了几种算法,并且numpy和spipy支持它们,但是其他人希望在其Java程序中调用我的python程序。 那么,numpy和spipy就是问题。它们不能在Java和Jython中… 有没有一种解决方案,我可以

  • 明确地说,不仅仅是“运行python脚本”,而是使我的python脚本成为一个“可执行”或“可调用”的程序,可以在其他编程语言或平台中使用。更像是API。 问题是我在Java实现了几个算法,它们得到了numpy和spipy的支持,但其他人想在他们的Java程序中调用我的python程序。 那么麻木和麻木就是问题了。他们不可能在Java和吉顿... 有没有一个解决方案,我可以使这是一个可执行的程序,

  • 问题内容: 我有一个简单的脚本blah.py(使用Python 2): 如果我通过以下方式执行脚本: 它输出参数,但是如果我通过以下方式执行脚本: 发生错误: 因此参数不会传递给脚本。 PATH中的python.exe。路径中也包含blah.py的文件夹。 python.exe是执行* .py文件的默认程序。 问题是什么? 问题答案: 执行脚本而不在前面键入“ python”时,你需要了解有关Wi

  • 问题内容: 我有一个.sql文件,其中包含一堆要在heroku上的postgres数据库上执行的插入命令。但我不知道该怎么做: 如果我有权访问postgres控制台,请输入以下内容: 但似乎heroku不支持此命令。我尝试过 但这不能让我输入文件。 还有其他选择吗? 问题答案: 对于种子数据库之类的事情,我推荐理查德·布朗(Richard Brown)的答案:可以说,最好使用Rails种子机制之类

  • 问题内容: 我需要从我的Python脚本执行该脚本。 可能吗?该脚本会生成一些输出,并写入一些文件。如何访问这些文件?我尝试了子流程调用功能,但没有成功。 应用程序“ bar”还引用了一些库,除了输出外,它还创建了文件“ bar.xml”。我如何访问这些文件?只是通过使用open()? 谢谢, 编辑: Python运行时的错误仅是这一行。 问题答案: 要执行外部程序,请执行以下操作: 是的,假设您

  • 问题内容: 我能运行Linux命令状或从Java没有问题,但不能得到执行的Python脚本。 这是我的代码: 什么都没有发生。它到达了SEND,但之后就停止了… 我正在尝试执行需要root权限的脚本,因为它使用串行端口。另外,我还必须传递带有一些参数的字符串(数据包)。 问题答案: 您不能像在示例中那样在内部使用PIPE 。PIPE是shell的一部分。 你可以做 将命令放入shell脚本并使用或

  • 问题内容: 我写了一个脚本,希望它可以在bash中通过 管道传递 。就像是: 可能吗?怎么样? 问题答案: 看到这个简单的: 运行: 输出: debug_output.txt内容: