我想从命令行制作一个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不知道。 – Prune
*是否可以像这样运行包?* <=否。但为什么不删除一个shell脚本? – dhke
您可能想查看[setuptools'console_scripts'入口点](http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-console-scripts-entry-point )。 *(假设你的软件包是一个正确的'setuptools'发行版,包含'setup.py'等等。)* –