用于Python中可重现环境的工具(或工具组合)

时间:2009-02-13 12:20:56

标签: python continuous-integration installation development-environment automated-deploy

我曾经是一名java开发人员,我们使用像ant或maven这样的工具以标准化方式管理我们的开发/测试/ UAT环境。这使我们能够处理库依赖关系,设置OS变量,编译,部署,运行单元测试以及所有必需的任务。此外,生成的脚本保证所有环境几乎都配置相同,并且所有任务都由团队的所有成员以相同的方式执行。

我现在开始使用Python了,我想知道你应该使用哪些工具来完成与java所描述的相同的工作。

7 个答案:

答案 0 :(得分: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粘贴,或paver进行部署。

  5. buildbot用于持续整合。

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

  7. Nose作为单元测试的扩展。

  8. PyFit进行FIT测试。

答案 1 :(得分:3)

我也使用java和python。 对于python开发,maven等价物是setuptools(http://peak.telecommunity.com/DevCenter/setuptools)。对于Web应用程序开发,我将此与paster(http://pythonpaste.org/)结合使用以进行部署过程

答案 2 :(得分:2)

除了easy_install

对于我们的Linux服务器,我们使用easy_install和yum。

对于我们的Windows开发笔记本电脑,我们使用easy_install和一些MSI用于某些项目。

我们使用的大多数Python库都是仅源代码库,因此我们可以在所有框中使用相同的分发版。如果我们可以拥有一个网络共享设备,我们会将它们全部放在那里。遗憾的是,我们的基础架构有点分散,因此我们必须移动.TAR文件或重做安装以重建环境。

在少数情况下(例如PIL),我们必须重新编译并检查版本号。

答案 3 :(得分:2)

你需要easy_setup来获取蛋(大概是Maven称之为神器)。

要设置环境,请查看working-env.py

Python未编译,但您可以将项目的所有文件放在一个蛋中。这是通过setuptools

完成的

对于CI,请检查this answer

答案 4 :(得分:2)

我们不应该提及由Paver成名的Kevin Dangoor创建的TurboGears。该项目仍处于阿尔法,但看起来很有希望。项目页面的摘录:

  

Paver是一个基于Python的构建/分发/部署脚本工具,与Make或Rake一致。 Paver的独特之处在于它与常用的Python库集成。以前容易完成的常见任务仍然很容易。更重要的是,处理您的应用程序特定需求和要求现在变得更加容易。

答案 5 :(得分:0)

我使用setuptools和Hudson的组合来做到这一点。我知道Hudson是一个java应用程序,但它可以运行Python的东西。

答案 6 :(得分:0)

您可能想查看我们的Devenv。它允许您标准化开发,QA和UAT的构建环境。它在“免费啤酒”中是免费的。

HTH