2
我打算使用多個包(內部和外部)開發一箇中等規模的網絡應用程序(有很多後端工作的),因爲它是我這樣的規模第一次的經驗,我可以得到一些建議於:Python包和模塊的版本管理
- 如何確保滿足所有相關性(無需封裝/模塊丟失,包是從正確的位置等進口)
- 如何管理軟件包/模塊的版本。我希望能夠在其他連接的軟件包/模塊中使用最少的代碼更改來引入新版本的軟件包/模塊。
請讓我知道是否有一個工具,可以在這方面的幫助。 如果有來與這種規模的管理代碼的任何其他挑戰(我可能甚至不知道的),那麼請慎用我提供的方法來解決這個問題。
目前我所知道的(並且認爲它可以在代碼管理幫助):
__all__
定義導出模塊。- 使用前述單下劃線的,以防止從得到進口
__init__.py
模塊來管理在封裝級(所以當我做import package_name
然後__init__.py
可以集中控制其它進口)- PEP 328進口管理相對導入,導入庫和其他類似的東西在導入。
- 我想一些第三方軟件包還定義
__version__
或VERSION
變量來檢查在運行時的版本,但我不知道我是否可以依靠它。
如果有書籍,博客等可以幫助,那麼請讓我知道。
編輯:我不知道,如果這類型的問題適合在這裏SO。如果不是的話,我表示歉意。
感謝TIMSS。我使用virtualenv,讓我進一步閱讀以瞭解凍結是否可以幫助管理軟件包的版本並簡化新軟件的引入/測試。我想了解我們如何管理我們自己的軟件包版本,我們是否定義版本變量,或者我們創建單獨的軟件包,如chat01 chat02。如果我有import package_name,現在我想嘗試一個更新的軟件包(認爲它是編寫版本化的REST API並管理它們) – 2013-04-21 17:38:06
@AccEnq Freeze可以幫助您管理版本,因爲您稍後可以在需求中安裝具有版本的軟件包.txt「與點(更新答案)。我不確定你將如何用個人軟件包解決它,但點可以從本地文件安裝。 – timss 2013-04-21 17:55:43