9

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

我现在开始在 Python 中工作,我希望得到您的建议,我应该使用哪些工具来完成与 java 中描述的相同的操作。

4

7 回答 7

18
  1. virtualenv创建一个包含的虚拟环境(防止不同版本的 Python 或 Python 包相互踩踏)。人们越来越多地转向这个工具。作者与 Aaron 提到的旧版 working-env.py 相同。

  2. pip在 vi​​rtualenv 中安装包。S. Lott 回答的传统是 easy_install,但 pip 与 virtualenv 配合得更好。不过,easy_install 仍然具有 pip 中没有的功能。

  3. scons作为构建工具,尽管如果你保持纯粹的 Python 就不需要它。

  4. 用于部署的织物糊或摊铺机。

  5. buildbot用于持续集成。

  6. 用于版本控制的 Bazaar、mercurial 或 git。

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

  8. 用于FIT测试的PyFit 。

于 2009-02-13T13:24:24.263 回答
3

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

于 2009-02-13T12:29:30.743 回答
2

除了easy_install吗?

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

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

我们使用的大多数 Python 库都是纯源代码,因此我们可以在所有盒子上使用相同的分布。如果我们可以有一个网络共享设备,我们会把它们都放在那里。可悲的是,我们的基础设施有点分散,所以我们必须移动 .TAR 文件或重新安装以重建环境。

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

于 2009-02-13T12:28:45.363 回答
2

您将需要easy_setup来获取鸡蛋(大致 Maven 称之为工件)。

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

Python 没有被编译,但是你可以将一个项目的所有文件放在一个 egg 中。这是使用setuptools完成的

对于 CI,请检查此答案

于 2009-02-13T12:30:18.900 回答
2

更不用说由TurboGears的 Kevin Dangoor 创建的Paver了。该项目仍处于 alpha 阶段,但看起来很有希望。项目页面的片段:

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

于 2009-02-13T18:00:31.963 回答
0

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

于 2009-02-13T13:06:36.707 回答
0

您可能想查看我们的Devenv。它允许您标准化用于开发、QA 和 UAT 的构建环境。它是免费的,就像“免费啤酒”一样。

高温高压

于 2010-05-14T00:53:17.210 回答