有没有办法在安装时自动向 requirements.txt 添加依赖项?

时间:2021-05-15 19:09:22

标签: python python-3.x requirements.txt

类似于 Node.js 如何自动向 package-lock.json 添加依赖项,有没有一种方法可以自动向我的 requirements.txt 文件添加 Python 的需求?

2 个答案:

答案 0 :(得分:2)

既然您特别提到了 Node.js,那么最接近您所寻找的 Python 项目可能是 Pipenv

模糊from the Pipenv documentation

<块引用>

Pipenv 是 Python 项目的依赖管理器。如果您熟悉 Node.js 的 npm 或 Ruby 的 bundler,它在精神上与这些工具相似。虽然 pip 可以安装 Python 包,但建议使用 Pipenv,因为它是一种高级工具,可简化常见用例的依赖项管理。

正如 many stars on GitHub 所证明的那样,这是一个非常受开发人员欢迎的软件包。

或者,您可以使用“虚拟环境”,在其中仅安装项目所需的外部依赖项。您可以使用标准库中的 venv 模块或 Virtualenv 中的 PyPI 包,后者提供了某些附加功能(您可能需要也可能不需要)。使用其中任何一个,您就可以使用 Python 的(标准)包管理器 Pip 来update the requirements file

pip freeze >requirements.txt

可以这么说,这是“半自动”方式。就个人而言,我更喜欢手动执行此操作。这是因为在典型的开发环境(“虚拟”与否)中,您还会安装仅用于开发任务所需的包,例如运行测试或构建文档。它们不需要与您的软件包一起安装在最终用户计算机上,因此不应位于 requirements.txt 中。 FlitPoetry 等流行的打包工具分别管理这些 "extra dependencies"as does Pip

答案 1 :(得分:1)

如果您使用的是 Linux,您可以创建这样的别名:

alias req='pip3 freeze > ~/requerments.txt'

然后当你想安装新包时使用这个命令:

pip3 install <package> | req