有没有办法减少我的requirements.txt --我一年前改用了Python,那时我还不完全理解事情是如何工作的。因此,当我需要创建requirements.txt时,我只是做了一个pip冻结,并且复制通过了所有的要求。今天,我知道,我不需要他们,只是高层,进口其他需求,有办法实现吗?
发布于 2020-08-30 08:29:17
有几个选择。
pip-工具
如果您在项目中使用pip,您可以欣赏pip-工具。首先将您的需求手动放入requirements.in中,然后使用pip-compile可以生成包含所有依赖项的最终requirements.txt。假设您的项目的依赖项是Django和Ansible。你把它们放到requirements.in里,就像这样:
# requirements.in
django
ansible然后运行pip-compile获得整个依赖关系图:
$ pip-compile requirements.in
#
# This file is autogenerated by pip-compile
# To update, run:
#
# pip-compile requirements.in
#
ansible==2.9.12 # via -r requirements.in
cffi==1.14.2 # via cryptography
cryptography==3.1 # via ansible
django==1.11.29 # via -r requirements.in
jinja2==2.11.2 # via ansible
markupsafe==1.1.1 # via jinja2
pycparser==2.20 # via cffi
pytz==2020.1 # via django
pyyaml==5.3.1 # via ansible
six==1.15.0 # via cryptography诗词
如果您正在使用诗词,那么您可以继续通过poetry add添加依赖项,并在需要时最终导出它们。否则,您可以跳过导出步骤,因为诗歌可以生成通过poetry build分发给您的包。
$ poetry add django
Using version ^3.1 for django
Updating dependencies
Resolving dependencies... (1.4s)
Writing lock file
Package operations: 3 installs, 0 updates, 0 removals
- Installing asgiref (3.2.10)
- Installing sqlparse (0.3.1)
- Installing django (3.1)您可以在pyproject.toml中找到所有依赖项。如果您需要将它导出到requirements.txt中
$ poetry export -f requirements.txt -o requirements.txt --without-hashes
我使用的是--without-hashes,因为AppEngine有问题
https://stackoverflow.com/questions/63655310
复制相似问题