【发布时间】:2017-06-21 08:42:24
【问题描述】:
我想从命令行创建一个可执行的 python 包。
我知道您可以使用chmod +x myfile.py 执行myfile.py 以#!/usr/bin/env 开头的操作,以使用./myfile.py 使单个文件可执行。我也知道你可以使用python -m mypackage 来运行包含__main__.py 的包。
但是,如果我将 shebang 行添加到包的 __main__.py,运行 chmod +x mypackage,然后尝试 ./mypackage,则会收到错误 -bash: ./mypackage: Is a directory。
这样的包可以运行吗?
(需要明确的是,我不是在寻找像 py2exe 这样的东西来使其成为独立的可执行文件。我仍然希望它能够被解释,我只是想让启动更简单)
【问题讨论】:
-
你必须运行一个文件,而不是一个目录。运行 ./mypackage/__main__.py 会发生什么? Python 可能知道如何找到主程序,但 Linux shell 不知道。
-
这样的包可以运行吗?
-
您可能想查看setuptools
console_scriptsentry point。 (假设您的包是正确的setuptools分发,包含setup.py等。) -
参见:stackoverflow.com/questions/6630822/running-a-python-package 和 stackoverflow.com/questions/4050120/…
python -m module.__main__