2009-07-09 34 views
6

有沒有方法可以將Python文件放在一起,類似於Java中的JAR?我需要一種打包Python類和函數的方法,但是與標準模塊不同,我希望它在一個文件中。在Python中組合模塊文件

回答

3

最簡單的方法是隻使用zip。 Java中的jar文件是包含某些元數據(例如清單)的zip文件;但是您不一定需要元數據 - 只要您將該zip文件放在sys.path中,Python就可以從zip文件中導入,就像您對任何目錄所做的一樣。在zip文件中你可以有源文件(.py文件),但是Python每次進程首次導入時都必須進行編譯;或者你可以擁有字節碼文件(.pyc或.pyo),但是你僅限於Python的特定發行版,並且只能使用標誌-O(或-OO)的缺失(對於.pyc)或存在(對於.pyo) )。

至於其他的答案指出,有格式,如.egg,豐富使用Python metatada zip文件,以及像Java的.jar,但無論是在特定使用案例,讓你額外的價值WRT一個普通的zip文件是一個決定您要製作

2

您可以使用zipimport創建包含Python代碼的zip文件並從zip文件導入。諸如PyInstaller(跨平臺)或py2exe(Windows)的系統將爲您執行所有操作。

9

尋找解決同樣的問題後,我結束了寫一個簡單的工具,它結合了多個.py文件到一個:PyBreeder

它只會用純Python模塊的工作,可能需要一些審訊中─並錯誤地獲取模塊的順序,但是每當你想將一些依賴的腳本部署爲一個.py時,它非常方便。評論/補丁/評論非常受歡迎!

+0

偉大的腳本,感謝提及它! – TechZilla 2012-02-08 19:22:31