【问题标题】:Creating a requirements.txt without development dependencies创建一个没有开发依赖的 requirements.txt
【发布时间】:2020-12-29 08:05:30
【问题描述】:

在开发过程中,经常需要我在venv 中安装的其他软件包,与我在venv 中安装的其他软件包相反,在生产中不需要这些软件包。生成requirements.txt 的最简洁方法是什么,除了我只在开发中需要的一次(如mypyautopep8)之外,它确实具有所有要求

这个answer展示了怎么做,但是方法很麻烦。

【问题讨论】:

  • 使用requirements.txt 的要点是在virtualenv 中使用它,并且该文件具有所有依赖项,您是否想知道如何在@ 之外使用它987654330@ 还是venv?看到这个link
  • @FishingCode 我想知道如何管理两个 venv(以及使用 pip freeze 创建的生成的 requirements.txt),一个用于生产,一个用于具有附加包的开发。
  • 您可以做/查看的是,创建两个 requirements.txt 一个用于生产,另一个用于开发(包含更多包)并创建一些逻辑来确定哪个 virtualenv 应该运行哪个要求.txt。你可以使用.bat 文件来做到这一点,如果你需要不同的python版本,你也可以添加它。

标签: python pip package pypi


【解决方案1】:

我建议使用pip-compile,来自https://pypi.org/project/pip-tools/

这使您可以定义一个“in”文件requirements.in,它仅列出您的顶级依赖项,例如:

requirements.in:

flask

然后你用pip-compile生成requirements.txt

$ pip-compile --output-file=requirements.txt requirements.in
#
# This file is autogenerated by pip-compile
# To update, run:
#
#    pip-compile --output-file=requirements.txt requirements.in
#
click==7.1.2              # via flask
flask==1.1.2              # via -r requirements.in
itsdangerous==1.1.0       # via flask
jinja2==2.11.2            # via flask
markupsafe==1.1.1         # via jinja2
werkzeug==1.0.1           # via flask

然后你可以为不同的环境拥有单独的.in/.txt文件,比如test.in/test.txt

最后,您可以递归地包含多个需求文件,例如

dev-requirements.txt:

-r requirements.txt
-r test.txt
-r lint.txt

【讨论】:

猜你喜欢
  • 2021-09-08
  • 2021-11-27
  • 2020-12-22
  • 2013-07-25
  • 2019-08-13
  • 1970-01-01
  • 2013-06-02
  • 1970-01-01
  • 2021-03-30
相关资源
最近更新 更多