2008-09-25 79 views
9

我寫了大量的python腳本,我發現自己重複使用了我爲其他項目編寫的大量代碼。我的解決方案是確保代碼分成邏輯模塊/包(這是給定的)。然後讓他們知道setuptools並將它們發佈到PyPI上。這允許我的其他腳本始終擁有最新的代碼,我得到一種溫暖的模糊感,因爲我沒有重複自己,總的來說,我的開發變得更加簡單。我也感覺很好,可能有人在那裏發現我的代碼方便他們正在處理的東西,但它主要是爲了自私的原因:)你如何管理你的自定義模塊?

對於所有的pythonistas,你如何處理這個問題?你使用PyPI還是setuptools(easy_install)?或者是其他東西?

+0

@Jeremy:這是一個問題和答案。你應該用簡單的術語來重述這個問題,然後你應該把你的方法作爲這個問題的第一個答案。管理模塊的最佳方式將被評爲頂級......你永遠不知道,它可能是你的。 – 2008-09-25 23:17:55

+0

我一發布這個,我就會想到。下次我肯定會這樣做。 – 2008-09-26 01:59:43

回答

1

我一直在做同樣的事情。提取常用功能,包括額外的文檔和單元測試/ doctests代碼,創建easy_install setup.py,然後在PyPi上發佈。最近,我創建了一個單獨的Google Code site,我管理源代碼並使wiki保持最新狀態。

1

我們在這裏討論什麼樣的模塊?如果您打算將您的項目分發給其他python開發人員,setuptools非常棒。但它通常不是一種將應用程序分發給最終用戶的好方法。在後一種情況下,您最好的選擇是將您的包裝定製到您分配的平臺上。當然,這是一種痛苦,但它使最終用戶的生活變得更容易。

例如,在我的Debian系統中,我通常不使用easy_install,因爲讓egg與package manager很好地工作會有點困難。在OS X和Windows中,你可能想要分別使用py2app和py2exe打包所有東西。這使最終用戶的生活變得更好。畢竟,他們不應該知道或關心你的腳本是用什麼語言編寫的,他們只需要他們來安裝。

0

我將它全部脫機存儲在邏輯目錄結構中,常用模塊分組爲實用程序。這意味着更容易控制我發佈和管理的版本。我還將構建過程自動化以解釋邏輯目錄結構。