2011-05-02 169 views
5

我正在考慮運送我的應用程序,這是一個python包的好方法。安裝我的軟件包很容易使用pythons distutils軟件包。安裝依賴項的最佳實踐?

問題出在我的軟件包所依賴的依賴項上。如果依賴關係是python包,我可以使用distutils輕鬆處理它們,但使用非python包?其中一些甚至在構建和安裝時需要非常小心,因爲需要設置非常特殊的編譯器標誌等等。

如果我想爲用戶自動安裝過程,最好的方法是什麼去做吧?

  1. 編寫用於下載和安裝的依賴
  2. 編寫安裝依賴
  3. 沒有自動化是最好的腳本生成文件。只需編寫一本手冊,告訴用戶如何安裝 依賴關係
  4. ???

THX提前任何答覆或建議

回答

4

最重要的事情,以幫助您決定是要考慮你的聽衆。

他們在技術上傾向於並且可能會遵循指令說明如何自行構建依賴關係?如果是這樣,請跟(3)。如果沒有,編寫一個python或shell腳本或者一個makefile來自動完成這個任務可能是最好的選擇。選擇你感覺最舒服的書寫方式。

4

我們有一個名爲Kivy的項目(http://kivy.org/),它們的問題完全相同。在早期階段,我們已經完成了一個包含每個依賴項的每個設置的一體化軟件包。然而,用戶有很多「下一步>」按鈕點擊...每個代表(Windows)。所以現在,我們已經設法照顧自己的依賴。

除了與linux有關(因爲我們所有的代碼已經打包在「linux」上),我們已經採取了管理每個平臺所謂的「portable-deps」zip文件的方法。然後,我們有一個腳本:

  1. 下載便攜式DEPS拉鍊
  2. 包括最新版本的我們的項目
  3. 加入啓動腳本,在根目錄下
  4. 郵編根目錄下,並將zip重命名爲project-.zip

對於MacOSX的特殊情況,其中zip是帶有少許UI的dmg。

好部分是,用戶不必關心DEPS,和開發人員確切地知道二進制文件與項目:)

有關信息,我們build_portable命令對distutils的交付: