我曾经是一名java开发人员,我们使用像ant或maven这样的工具以标准化方式管理我们的开发/测试/ UAT环境。这使我们能够处理库依赖关系,设置OS变量,编译,部署,运行单元测试以及所有必需的任务。此外,生成的脚本保证所有环境几乎都配置相同,并且所有任务都由团队的所有成员以相同的方式执行。
我现在开始使用Python了,我想知道你应该使用哪些工具来完成与java所描述的相同的工作。
答案 0 :(得分:18)
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作为单元测试的扩展。
答案 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