【问题标题】:Executable Python Program with Multiple Functions (MacOS)具有多种功能的可执行 Python 程序 (MacOS)
【发布时间】:2015-10-31 07:47:23
【问题描述】:

我想寻求有关 Python 的建议。

我使用 Python 创建了一个 main.py,它调用多个函数,这些函数位于单独的 Python 脚本文件中。我想在 MacOS 中创建可执行文件,我找到了这个命令:

chmod +x main.py

但是,由于 main.py 调用了另一个函数,我无法运行,因为它给了我错误。请告知如何将这些功能脚本链接到主脚本中。

谢谢。

【问题讨论】:

  • “我无法运行,因为它给了我错误”。错误是什么?
  • 嗯,from script1 import function1 然后function1()?

标签: python macos python-2.7


【解决方案1】:

我不确定问题出在哪里,因为没有太多细节,我将从头开始:

命令chmod +x main.py 向您的系统表明文件main.py 是一个可执行文件。由于main.py 不是一个可以执行的程序,你将不得不告诉OSX 如何运行你创建的这个脚本。这就是shebang的来源Shebang (Unix)

您需要在脚本的顶部添加以下行:

#!/usr/bin/env python

这将告诉您的计算机将您的 main.py 脚​​本传递给 python 执行。

现在开始导入内容。当您使用import 语句see the python docs for more info 时,Python 将在以下位置查找:

包含输入脚本的目录(或未指定文件时的当前目录)。

PYTHONPATH(目录名称列表,与shell变量PATH语法相同)。

依赖于安装的默认值。

因此,如果您有一个带有函数 bar 的模块 foo.py 并将 foo.pymain.py 放在同一目录中,则可以在您的 main.py 脚本中执行以下操作。

#!/usr/bin/env python
import foo
foo.bar() <-- this will run the bar function defined in foo.py

或者,您可以在 main.py 中执行以下操作:

#!/usr/bin/env python
from foo import bar
bar() <-- this will run the bar function defined in foo.py

【讨论】:

    猜你喜欢
    • 2021-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2017-11-24
    • 1970-01-01
    • 1970-01-01
    • 2017-08-13
    相关资源
    最近更新 更多