管理应用程序依赖性的工具/最佳实践?

时间:2011-03-02 18:58:47

标签: python dependency-management

有哪些工具或最佳实践可用于跟踪和管理我正在开发的软件的依赖关系?我正在使用Python / Django,到目前为止我所有的软件需求都是开源的。

我正在开发一个Web应用程序,虽然适度,但有许多依赖项。至少,我想跟踪这些软件和版本号。我想我也想跟踪所需软件的配置,可能还有一些系统级的东西(用户ID,如果有的话),需要实例所需的软件及其所需的权限。

(更好的是,当我准备好部署时,这将有助于我为应用程序设置服务器。更好的是可以让我跟踪用于支持应用程序的http和dns名称服务器但有传言说傀儡是这种事情的工具。)

1 个答案:

答案 0 :(得分:18)

使用pipvirtualenv。使用virtualenv,您可以创建一个“虚拟环境”,其中包含将所有Python包安装到本地目录中。使用pip install -r,您可以安装特定需求文件中列出的所有包。

粗略的例子:

virtualenv /path/to/env --no-site-packages --unzip-setuptools # create virtual environment
source /path/to/env/bin/activate # activate environment
easy_install pip # install pip into environment
source /path/to/env/bin/activate # reload to get access to pip
pip install -r requirements.txt

requirements.txt包含这样的行:

django==1.3

关于这一点的好处是requirements.txt既可以作为文档也可以作为安装过程的一部分,因此无需同步这两者。