在使用 Python
进行项目开发的时候,常常会调用许多包,而这些包又会不断更新。 因此,当前项目所需要的包的功能,在以后的迭代中可能会被取代或者更新, 从而导致在某个时间重新启动项目时无法运行。
所以,记录下项目所需要的包类型及版本是非常重要的, 这样以后重启项目时可以直接安装。
requirements.txt
是定义项目依赖的 Python
包的文件,可通过工具生成。 工具可以生成两种依赖包定义:
- 项目依赖的
Python
包 - 当前
Python
环境中安装的所有Python
包
一、生成 requirements.txt
文件
1. 生成项目依赖包(推荐方式)
安装 pipreqs
工具
bash
pip3 install pipreqs
到项目根目录下执行命令:
bash
pipreqs ./
如果出现编码错误,可以使用:
bash
pipreqs ./ --encoding=utf8
如果已存在 requirements.txt
,可以使用 --force
参数强制生成:
bash
pipreqs ./ --force
这样会在项目目录下生成 requirements.txt
文件。
2. 生成整个当前 Python
环境安装的包(全局环境)
这种方式会在当前路径下生成一个 requirements.txt
文件, 其中记录了当前 Python
环境下所有的包及其版本。
可以理解为把 pip list
命令的结果写入了文件。 这种方式速度快,但 requirements.txt
文件包含的包会比项目需要的多。
命令如下:
bash
pip3 freeze > requirements.txt
二、安装 requirements.txt
文件
推荐先使用 conda
新建一个虚拟环境,再使用以下命令:
bash
pip3 install -r requirements.txt
如果需要加速下载,可以添加清华镜像:
bash
pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
注:
-
如果有项目的源环境(比如从一台电脑复制到另一台电脑), 可以直接复制整个虚拟环境。
-
如出现以下错误:
vbnet
Fatal error in launcher: Unable to create process using '"C:\Users|Administrator\Anaconda\envs\python\python.exe""D:\Anaconda\envs\python\Scripts\pip.exe"'
可以重新安装 pip
。
- 如果没有网络,需要离线安装
.whl
文件,可以这样:
bash
python -m pip install xxx.whl