我想從命令行製作一個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'等等。)* –