Python 依赖管理实践
Python Dependency management practices
现在我正在参与 node.js 项目,我喜欢 "node way" 依赖管理。
我会为那些没有使用过npm
的人提供一些例子
npm install package_name --save
- 安装 package_name
作为 production dependency
npm install package name --save-dev
- 安装 package_name
作为开发依赖。
所有deps都存储在package.json
文件中,该文件由版本控制系统索引。当我克隆 repo 时,我只需在终端中输入 npm install
即可安装所有内容。
据我所知,pip freeze
可以做到,但是:
在生产服务器上,我可以输入 npm install --production
,但我所有的构建工具、测试框架等都没有安装。只是生产部门。
所以,问题是:
如何使用 pip(或其他工具)拆分生产和开发依赖项?
我会为 Python 3) 创建两个 virtualenvs (venv,每个文件都有一个单独的 requirements.txt
文件,例如 requirements-production.txt
和 requirements-develop.txt
,但看起来我有点奇怪。
就我个人而言,我通常使用git的分支来分隔production/development代码。大多数开发都在 develop
分支中进行,只有一个 requirements.txt
(当然可以随时间变化)。当一切正常时 and/or 开发周期结束,我将它与 master
分支合并。不需要同时测试不同版本的依赖项。
有一个很好的解决方案,它是一个很新的工具,叫做 pipenv。似乎是 python.
的 npm 模拟
现在我正在参与 node.js 项目,我喜欢 "node way" 依赖管理。
我会为那些没有使用过npm
npm install package_name --save
- 安装package_name
作为 production dependencynpm install package name --save-dev
- 安装package_name
作为开发依赖。
所有deps都存储在package.json
文件中,该文件由版本控制系统索引。当我克隆 repo 时,我只需在终端中输入 npm install
即可安装所有内容。
据我所知,pip freeze
可以做到,但是:
在生产服务器上,我可以输入 npm install --production
,但我所有的构建工具、测试框架等都没有安装。只是生产部门。
所以,问题是:
如何使用 pip(或其他工具)拆分生产和开发依赖项?
我会为 Python 3) 创建两个 virtualenvs (venv,每个文件都有一个单独的 requirements.txt
文件,例如 requirements-production.txt
和 requirements-develop.txt
,但看起来我有点奇怪。
就我个人而言,我通常使用git的分支来分隔production/development代码。大多数开发都在 develop
分支中进行,只有一个 requirements.txt
(当然可以随时间变化)。当一切正常时 and/or 开发周期结束,我将它与 master
分支合并。不需要同时测试不同版本的依赖项。
有一个很好的解决方案,它是一个很新的工具,叫做 pipenv。似乎是 python.
的 npm 模拟