9

我曾經是一名java開發人員,我們使用像ant或maven這樣的工具以標準方式管理我們的開發/測試/ UAT環境。這使我們能夠處理庫依賴關係,設置OS變量,編譯,部署,運行單元測試以及所有必需的任務。此外,生成的腳本可以確保所有環境的配置幾乎相同,並且團隊中的所有成員都以相同的方式執行所有任務。Python中可重現環境的工具(或工具組合)

我現在開始在Python中工作,並且希望您的建議能夠用於完成與java所描述的相同的工具。

回答

18
  1. virtualenv創建一個包含虛擬環境(防止不同版本的Python或Python包的從踩彼此)。人們越來越多地轉向這個工具。作者與Aaron提到的較老的working-env.py相同。

  2. pip在virtualenv中安裝軟件包。傳統的easy_install是由S. Lott回答的,但是pip與virtualenv更好地協作。 easy_install仍然具有在pip中找不到的功能。

  3. scons作爲一個構建工具,但如果你保持純粹的Python,你不需要這個。

  4. Fabric paste或paver用於部署。

  5. buildbot持續集成。

  6. Bazaar,mercurial或git版本控制。

  7. Nose作爲單元測試的擴展。

  8. PyFit對於FIT測試。

+0

+1 virtualenv。另外,使用virtualenvwrapper。 – hughdbrown 2011-06-13 01:00:54

2

easy_install

對於我們的Linux服務器,我們使用easy_install和yum。

對於我們的Windows開發筆記本電腦,我們對一些項目使用easy_install和一些MSI。

我們使用的大多數Python庫都是純代碼的,所以我們可以在所有盒子上使用相同的分佈。如果我們可以有一個網絡共享設備,我們會把它們放在那裏。可悲的是,我們的基礎架構有點分散,所以我們不得不移動.TAR文件或重做安裝來重建環境。

在少數情況下(例如PIL),我們必須重新編譯並檢查版本號。

2

您將需要easy_setup來獲取雞蛋(大致Maven稱之爲工件)。

關於設置你的環境,看看working-env.py

Python是沒有編制,但你可以把所有文件在一個雞蛋一個項目。這是通過setuptools

對於CI,檢查this answer

0

我正是用setuptools和Hudson的組合來做到這一點。我知道哈德森是一個Java應用程序,但它可以運行Python的東西很好。

2

我們將是失職,更何況還Paver,這是由TurboGears成名凱文Dangoor創建。該項目仍處於阿爾法,但看起來非常有前景。項目頁面中的代碼片段:

Paver是一個基於Python或Make或Rake的構建/分發/部署腳本工具。 Paver的獨特之處在於它與常用的Python庫的集成。以前很容易的常見任務仍然很容易。更重要的是,處理您的應用程序的特定需求和要求現在更容易。

0

您可能想要檢查我們的Devenv。它允許您爲開發,QA和UAT標準化構建環境。它是免費的,如「免費啤酒」。

HTH