【问题标题】:Add requirement for only dependent app添加仅依赖应用程序的要求
【发布时间】:2015-02-23 16:41:32
【问题描述】:

我正在 Linux Ubuntu 上开发我的 django 项目。 我没有使用virualevn。所以当我运行命令时

pip freeze > requirement.txt

它将数百行(应用程序)添加到我的 requirements.txt 文件中。我只想添加那些只需要运行这个应用程序的应用程序。

有什么办法吗?

【问题讨论】:

  • 你考虑过使用 virtualenv 吗? :)
  • 是的,但我说的是如果不使用 virtualenv 怎么办?
  • 对我来说,这个问题听起来有点像:I have a nail, a screwdriver and a hammer. How do can I hang up my picture without using the hammer? 如果你知道如何使用 virtualenv,为什么这不是你的选择?
  • 因为我有一个来自另一个开发人员的项目,该项目没有使用virutalenv 实现,并且在 requirements.txt 文件中编写了很多应用程序,我不知道这些应用程序是否需要,我无法手动删除并检查。这就是我问的原因。
  • 你可以反过来:在一个空的环境中安装你的应用程序,测试你的包并通过安装所需的包来摆脱所有ImportError。如果您的单元测试很好地涵盖了您的项目,那么即使对于许多依赖项,这也不会花费太多时间。之后您真的应该将要求添加到 install_requires 并保持 setup.py 是最新的。

标签: django git pip ubuntu-14.04


【解决方案1】:

没有自动获取您需要的应​​用程序的方法。您必须手动构建需求文件。不过,这并不难 - 首先查看所有文件中的所有导入,然后为这些导入添加应用程序。然后在仅包含这些导入的新虚拟环境中运行您的应用程序 - 任何时候由于缺少导入而崩溃,您知道您需要添加另一个!

【讨论】:

    【解决方案2】:

    仅获取 pip 下载的包

    它省略了依赖包,可用于获取下载的python模块的干净列表以添加到requirement.txt文件中

    comm -12 <(pip list --format=freeze --not-required) <(pip freeze) > requirements.txt
    

    希望对您有所帮助!


    我不确定我们是否应该将我们从pip freeze 收到的任何内容放入requirement.txt 文件中,或者仅将所需的包放入文件中

    我问了一个问题here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-12-17
      • 2021-08-07
      • 2011-12-02
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 2018-10-12
      相关资源
      最近更新 更多