簡體   English   中英

如何打包/分發python應用程序

[英]How to package/ distribute python applications

我花了無數個小時試圖理解這一點,不幸的是我還沒有得到答案。 或者至少我認為我沒有。 首先,我應該說我是Java開發人員。 我最近才開始使用Python,構建過程對我來說有點奇怪。

在我看來,我編寫了一個應用程序,我將其編譯為運行,然后將其打包成.jar供其他人使用。 既可以作為圖書館,也可以作為最終用戶執行並享受樂趣。 (忽略像maven或gradle這樣的東西...)

我在python中寫了一個小的CLT,包含~6個文件,我想分發它。 從我能找到的,我應該寫一個setup.py,我找到了一些關於如何做到這一點的指南但是......說實話我甚至不確定那是做什么的。 我可以將我的源代碼捆綁到帶有其他元數據的tar.gz中,否則會創建一些我不知道該怎么做的奇怪文件。

然后我發現了PyInstaller,將所有內容打包成二進制文件非常有用。 但是我在嘗試創建Debian軟件包時遇到了一些問題,它讓我重新評估並質疑Python中似乎沒有什么東西(不必使用外部工具)讓我打包/ bundle /將我的應用程序放入要運行的單個文件中。

這是我無法理解的事情。 我的意思是......在有像PyInstaller和P2Exe之類的工具之前,什么不是,人們如何分發他們的應用程序? 我是否應該編寫一個C應用程序,以某種方式在那里包含python代碼並編譯它? 對不起,如果這似乎是一個愚蠢的問題,但我真的在問。 我已經搜索過這么多,花了很多時間在上面,並沒有找到滿意的答案,所以我希望有人可以幫助我! 謝謝。

如果您將Python代碼打包為pip ,則可以包含一些啟動程序的可執行腳本。 我不知道5年前這個問題被問到的情況是怎么回事,但現在pip幾乎與Python集成了,以至於有一個標准的庫模塊來引導pip ,以防它丟失: https:// docs .python.org / 3 /庫/ ensurepip.html

如果您想要為其他軟件包管理器(如Anaconda或各種Linux發行版的軟件包管理器)或Windows安裝程序打包應用程序,情況就不同了。 顯然,您必須為每個要支持的包管理器或安裝技術創建單獨的包。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM