我曾经是一名java开发人员,我们使用像ant或maven这样的工具以标准方式管理我们的开发/测试/ UAT环境。这使我们能够处理库依赖关系,设置OS变量,编译,部署,运行单元测试以及所有必需的任务。此外,生成的脚本可以确保所有环境的配置几乎相同,并且团队中的所有成员都以相同的方式执行所有任务。Python中可重现环境的工具(或工具组合)
我现在开始在Python中工作,并且希望您的建议能够用于完成与java所描述的相同的工具。
我曾经是一名java开发人员,我们使用像ant或maven这样的工具以标准方式管理我们的开发/测试/ UAT环境。这使我们能够处理库依赖关系,设置OS变量,编译,部署,运行单元测试以及所有必需的任务。此外,生成的脚本可以确保所有环境的配置几乎相同,并且团队中的所有成员都以相同的方式执行所有任务。Python中可重现环境的工具(或工具组合)
我现在开始在Python中工作,并且希望您的建议能够用于完成与java所描述的相同的工具。
virtualenv创建一个包含虚拟环境(防止不同版本的Python或Python包的从踩彼此)。人们越来越多地转向这个工具。作者与Aaron提到的较老的working-env.py相同。
pip在virtualenv中安装软件包。传统的easy_install是由S. Lott回答的,但是pip与virtualenv更好地协作。 easy_install仍然具有在pip中找不到的功能。
scons作为一个构建工具,但如果你保持纯粹的Python,你不需要这个。
buildbot持续集成。
Bazaar,mercurial或git版本控制。
Nose作为单元测试的扩展。
对于我们的Linux服务器,我们使用easy_install和yum。
对于我们的Windows开发笔记本电脑,我们对一些项目使用easy_install和一些MSI。
我们使用的大多数Python库都是纯代码的,所以我们可以在所有盒子上使用相同的分布。如果我们可以有一个网络共享设备,我们会把它们放在那里。可悲的是,我们的基础架构有点分散,所以我们不得不移动.TAR文件或重做安装来重建环境。
在少数情况下(例如PIL),我们必须重新编译并检查版本号。
我也同时使用java和python。 对于python开发,等价的maven是setuptools(http://peak.telecommunity.com/DevCenter/setuptools)。对于Web应用程序开发,我将它与paster(http://pythonpaste.org/)结合使用以用于部署过程
`setuptools`对我来说是痛苦的。 – 2013-07-20 11:01:45
您将需要easy_setup来获取鸡蛋(大致Maven称之为工件)。
关于设置你的环境,看看working-env.py
Python是没有编制,但你可以把所有文件在一个鸡蛋一个项目。这是通过setuptools
对于CI,检查this answer。
我正是用setuptools和Hudson的组合来做到这一点。我知道哈德森是一个Java应用程序,但它可以运行Python的东西很好。
我们将是失职,更何况还Paver,这是由TurboGears成名凯文Dangoor创建。该项目仍处于阿尔法,但看起来非常有前景。项目页面中的代码片段:
Paver是一个基于Python或Make或Rake的构建/分发/部署脚本工具。 Paver的独特之处在于它与常用的Python库的集成。以前很容易的常见任务仍然很容易。更重要的是,处理您的应用程序的特定需求和要求现在更容易。
您可能想要检查我们的Devenv。它允许您为开发,QA和UAT标准化构建环境。它是免费的,如“免费啤酒”。
HTH
+1 virtualenv。另外,使用virtualenvwrapper。 – hughdbrown 2011-06-13 01:00:54