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