管理应用依赖的工具和最佳实践?
我想知道有哪些工具或最佳实践可以帮助我跟踪和管理我开发的软件的依赖关系。我正在使用Python和Django,目前我所有的软件需求都是开源的。
我正在开发一个网页应用,虽然功能不复杂,但有很多依赖项。至少,我希望能跟踪这些依赖的软件及其版本号。我想我还想跟踪所需软件的配置,可能还包括一些系统级的信息(比如,运行所需软件的进程的用户ID,以及所需的权限)。
如果能有工具帮助我在准备部署时设置应用的服务器,那就更好了。如果还能让我跟踪支持这个应用的HTTP和DNS名称服务器,那就更棒了。不过听说Puppet是一个可以做这类事情的工具。
1 个回答
18
使用 pip
和 virtualenv
。通过 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
文件既可以作为文档,也可以作为安装过程的一部分,所以你不需要去同步这两者。