我曾是一名Java开发人员,我们使用像Ant或Maven这样的工具以标准化的方式管理开发/测试/UAT环境。这使我们可以处理库依赖项、设置操作系统变量、编译、部署、运行单元测试以及完成所有所需任务。此外,生成的脚本保证了所有环境的配置几乎相同,并且所有团队成员以相同的方式执行所有任务。
我现在开始从事Python工作,想请您建议我使用哪些工具来实现与Java相同的功能。
我曾是一名Java开发人员,我们使用像Ant或Maven这样的工具以标准化的方式管理开发/测试/UAT环境。这使我们可以处理库依赖项、设置操作系统变量、编译、部署、运行单元测试以及完成所有所需任务。此外,生成的脚本保证了所有环境的配置几乎相同,并且所有团队成员以相同的方式执行所有任务。
我现在开始从事Python工作,想请您建议我使用哪些工具来实现与Java相同的功能。
virtualenv 能够创建隔离的虚拟环境,防止不同版本的Python或Python包互相影响。越来越多的人开始使用这个工具。作者与Aaron提到的旧版working-env.py是同一个人。
pip 可以在虚拟环境中安装包。传统的方法是easy_install,S. Lott也提到了这点,但是pip在虚拟环境下运行更好。不过easy_install仍然有pip没有的一些功能。
scons 作为构建工具,但是如果你只使用Python的话就用不到它。
buildbot 用于持续集成。
Bazaar、mercurial或git用于版本控制。
Nose 作为扩展的单元测试工具。
我同时使用Java和Python进行开发。
对于Python开发,maven的等效工具是setuptools (http://peak.telecommunity.com/DevCenter/setuptools)。在Web应用程序开发中,我与paster (http://pythonpaste.org/)结合使用来进行部署。
我使用setuptools和Hudson的组合来实现这一点。我知道Hudson是一个Java应用程序,但它可以很好地运行Python代码。
setuptools
对我来说很痛苦。 - anatoly techtonik