![](/img/trans.png)
[英]Python docker, should I add new libraries by pip(within image) and create requirements.txt from pip freeze, or editing the requirements.txt manually?
[英]With pip, should I create requirements.txt from pip freeze, or by manually editing the requirements.txt file?
对于上下文,我对 Python 了解不多,更不用说惯用的 Python。 我正在做一个棕地项目。 我所说的关于 docker 的一切可能与我要问的问题无关,但我不能说:我们的代码在 Docker 容器中运行。 我们不使用虚拟环境,而是硬编码 Python 版本并在 Dockerfile 中运行:
ADD requirements.txt /
RUN pip install -r /requirements.txt \
&& rm -rf /requirements.txt
目前,我们有两种向requirements.txt
添加需求的方法:
通过运行此命令(以 twilio 为例):
docker-compose run --rm django bash -c "pip install twilio && pip freeze > requirements.txt"
通过访问 pypi.org,找到依赖项的名称和当前版本,然后手动将该行添加到 hosts requirements.txt
中。
两者似乎都有效,但我的直觉告诉我,其中一个/两个都有潜在的缺点。 每种选择的优缺点是什么,哪一种被认为是惯用的? 如果这些都不被认为是惯用的,那么添加到requirements.txt
的正确方法是什么?
我一直在谷歌搜索,但很多结果都是有问题的,因为它们真的很旧。 例如, pip 20.3.2020添加了解析器功能,我不知道最佳实践有什么影响。
requirements.txt
文件指示了为使您的应用程序正确运行而必须安装的所有依赖项。
运行pip freeze
会将所有实际安装的库(开发、其他项目、已弃用等)转储到新创建的requirements.txt
文件中。
手动添加依赖项是列出依赖项的一种更可控的方式。
我建议您在构建项目时手动将依赖项添加到文件中。 如果您发现有些不需要,请将它们删除。 使用pip freeze
,也许其他二级库将保留。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.