requirements.txt

发布时间 2023-12-09 16:33:23作者: 温小皮

参考Python 中的 requirement.txt

Python 中的依赖

Python 需要维护项目相关的依赖包。通常我们会在项目的根目录下放置一个 requirements.txt 文件,用于记录所有依赖包和它的确切版本号。

requirements.txt 的内容长这样:

alembic==1.0.10
appnope==0.1.0
astroid==2.2.5
attrs==19.1.0
backcall==0.1.0
bcrypt==3.1.6
bleach==3.1.0
cffi==1.12.3
Click==7.0
decorator==4.4.0
defusedxml==0.6.0
entrypoints==0.3

如何使用?

那么 requirements.txt 究竟如何使用呢?

当我们拿到一个项目时,首先要在项目运行环境安装 requirements.txt 所包含的依赖:
pip install -r requirements.txt

当我们要把环境中的依赖写入 requirements.txt 中时,可以借助 freeze 命令:
pip freeze >requirements.txt

环境混用怎么办?

在导出依赖到 requirement.txt 文件时会有一种尴尬的情况。

你的本地环境不仅包含项目 A 所需要的依赖,也包含着项目 B 所需要的依赖。此时我们要如何做到只把项目 A 的依赖导出呢?

pipreqs 可以通过扫描项目目录,帮助我们仅生成当前项目的依赖清单。

通过以下命令安装:
pip install pipreqs

运行(在项目根目录下):
pipreqs ./
pipreqs ./ --encoding utf8 (推荐,会直接生成requirements.txt文件)

==============================================================

pipreqs

参考PyPI-pipreqs

Why not pip freeze?

  • pip freeze only saves the packages that are installed with pip install in your environment.
  • pip freeze saves all packages in the environment including those that you don’t use in your current project (if you don’t have virtualenv).
  • and sometimes you just need to create requirements.txt for a new project without installing modules.