【问题标题】:Python Dependency management practicesPython 依赖管理实践
【发布时间】:2015-04-18 10:58:10
【问题描述】:

现在我正在参与 node.js 项目,我喜欢依赖管理的“节点方式”。

我会为那些没有使用过npm的人提供一些例子

  • npm install package_name --save - 将 package_name 安装为 生产 依赖项
  • npm install package name --save-dev - 安装 package_name 作为开发依赖。

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

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

所以,问题是:

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

【问题讨论】:

    标签: python dependencies pip


    【解决方案1】:

    有一个很好的解决方案,它是一个相当新的工具,叫做pipenv。似乎是 python 的 npm 模拟。

    【讨论】:

      【解决方案2】:

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

      就个人而言,我通常使用 git 的分支来分离生产/开发代码。大多数开发都在develop 分支中进行,只有一个requirements.txt(肯定会随着时间而改变)。当一切正常和/或开发周期结束时,我只是将它与master 分支合并。不需要同时测试不同版本的依赖项。

      【讨论】:

      • 非常感谢,您不觉得需要太多人工吗?
      • @AlexeySidash Nah,至少对我而言,它非常简单快捷:) 我还使用 fabric 部署项目,所以它甚至更快 - 实际上,只需一个命令:fab deploy -R production。它通过 ssh 连接到生产服务器,从相应的分支 (master) 执行 git pull 并重新启动服务器上负责的任何内容(如 uwsgi)。
      • 感谢面料。看起来不错!
      猜你喜欢
      • 2022-08-09
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-07
      相关资源
      最近更新 更多