Python 依赖管理实践

Python Dependency management practices

现在我正在参与 node.js 项目,我喜欢 "node way" 依赖管理。

我会为那些没有使用过npm

的人提供一些例子

所有deps都存储在package.json文件中,该文件由版本控制系统索引。当我克隆 repo 时,我只需在终端中输入 npm install 即可安装所有内容。 据我所知,pip freeze 可以做到,但是:

在生产服务器上,我可以输入 npm install --production,但我所有的构建工具、测试框架等都没有安装。只是生产部门。

所以,问题是:

如何使用 pip(或其他工具)拆分生产和开发依赖项?

我会为 Python 3) 创建两个 virtualenvs (venv,每个文件都有一个单独的 requirements.txt 文件,例如 requirements-production.txtrequirements-develop.txt,但看起来我有点奇怪。

就我个人而言,我通常使用git的分支来分隔production/development代码。大多数开发都在 develop 分支中进行,只有一个 requirements.txt (当然可以随时间变化)。当一切正常时 and/or 开发周期结束,我将它与 master 分支合并。不需要同时测试不同版本的依赖项。

有一个很好的解决方案,它是一个很新的工具,叫做 pipenv。似乎是 python.

的 npm 模拟