2017-06-15 39 views
2

基本上我們有一個Python庫,包含我們在許多程序中使用的模塊和函數。目前,我們直接將SVN信息庫檢出到C:\ Python27 \ Lib中,以便該庫位於Python路徑中。當有人對庫進行修改時,每個人都會更新以獲取這些修改。處理Python庫包的最佳實踐是什麼?

我們的一些程序被凍結(使用cx-Freeze)並交付,因此我們必須跟蹤交付中使用的庫版本,但cx-Freeze會自動打包導入代碼中的模塊。

  • 我不認爲這是要靠人來驗證他們在庫中沒有未提交的本地修改,或者他們是最新的凍結任何程序導入前一個好主意。

  • 我們唯一跟蹤的版本號是庫存儲庫的提交號,它沒有鏈接任何地方到程序交付版本,並且在我看來不應該用作庫的交付版本。

我想使用一個setup.py打造該庫的特定版本的分發,然後表明版本在程序的項目文件夾中的requirements.txt文件導入,但隨後如果我們想對該庫進行修改,則會變得複雜,因爲每次我們要測試它時都必須構建和安裝一個分發版。這並不複雜,但我認爲有人會凍結一個程序與該庫的測試版本,它回到了開始...

我一直在尋找一個最佳實踐的具體情況,但我什麼也沒找到,有任何想法嗎?

+1

歡迎來到StackOverflow。請閱讀並遵守幫助文檔中的發佈準則。[在主題](http://stackoverflow.com/help/on-topic)和[如何提問](http://stackoverflow.com/help/how-to-ask)適用於此處。 – Prune

回答

0

最終你將不得不相信你的用戶去關注你所建立的開發過程。你可以創建工具來簡化這些工作,但你總是會得到一些信任。

的事情,一直有幫助的一些人包括:

  • 所有冷凍/出貨的可執行文件的建立由像BuildBot或詹金斯,而不是由個人開發者都建立在中央臺機器上。這給了你一箇中心點,確保從乾淨的結賬中發貨。

  • 如果存在未提交的更改,請提供執行構建和出錯的腳本。

  • 如有可能是有價值的使人們有可能在你的發行版的源代碼樹點PYTHONPATH和有工作的事情,即使是有setup.py,可以建立分佈。這使測試更容易。與往常一樣,確保用於構建發貨版本的工具檢查此問題,如果發生問題則會失敗。

我個人認爲,對於包含在閉源應用程序中的庫的乾淨標記的顛覆檢出,我認爲發行版有很多價值。 你可以採取任何一種方法,但我認爲你會發現關鍵在於具有良好的自動化,無論你選擇哪種方式,而不是分配和顛覆結賬的答案