【问题标题】:Managing contents of requirements.txt for a Python virtual environment管理 Python 虚拟环境的 requirements.txt 的内容
【发布时间】:2017-01-17 06:51:51
【问题描述】:

所以我正在从头开始创建一个全新的 Flask 应用程序。和所有优秀的开发人员一样,我的第一步是创建一个虚拟环境。

我在虚拟环境中安装的第一件事是Flask==0.11.1。 Flask 安装了以下依赖项:

  • 点击==6.6
  • 其危险==0.24
  • Jinja2==2.8
  • MarkupSafe==0.23
  • Werkzeug==0.11.11
  • wheel==0.24.0

现在,我创建了一个 requirements.txt 以确保克隆存储库的每个人都拥有相同版本的库。然而,我的困境是这样的:

  • 我是否在 requirements.txt 中提到了每个 Flask 依赖项以及版本号 或
  • 我只是在 requirements.txt 中提及确切的 Flask 版本号,并希望当他们执行 pip install requirements.txt 时,Flask 会处理依赖管理,他们将下载正确版本的依赖库

【问题讨论】:

  • 看看pip-tools中的pip-compile命令。
  • @dirn..这真的很好..谢谢..

标签: python pip virtualenv requirements.txt


【解决方案1】:

这里的一件好事是您正在使用 virtualenv,这将使您的任务变得非常容易。

  1. 激活 virtualenv ($source path_to_virtualenv/bin/activate)

  2. 进入你的项目根目录

  3. 在 requirements.txt 中获取所有包以及依赖项

    pip freeze > requirements.txt
    
  4. 除了确保下一个人通过以下命令递归安装需求之外,您不必担心其他任何事情

    pip install -r requirements.txt
    

【讨论】:

    【解决方案2】:

    这两种方法都有效且有效。但是有一点区别。当您在requirements.txt 中输入所有依赖项时,您将能够固定它们的版本。如果您将它们排除在外,则可能会有稍后的更新,并且如果 Flask 在其依赖项中有类似 Werkzeug>=0.11 的内容,您将安装更新版本的 Werkzeug。

    所以它归结为更新与定义的环境。哪个更适合你。

    【讨论】:

      【解决方案3】:

      您可以(从您的活动虚拟环境中)执行以下操作

      pip freeze > requirements.txt
      

      它将自动处理您项目中可用的所有库/模块。

      下一个开发者只需发布:

      pip install -r requirements.txt
      

      【讨论】:

        【解决方案4】:

        如果您只想查看已安装的软件包,请执行
        pip freeze

        但是如果你想要在你的requirements.txt中所有这些包,那么做
        pip freeze > requirements.txt

        【讨论】:

          猜你喜欢
          • 2021-12-15
          • 2020-11-19
          • 2018-04-24
          • 1970-01-01
          • 2023-01-09
          • 2019-09-24
          • 2021-02-06
          • 1970-01-01
          • 2017-12-03
          相关资源
          最近更新 更多