方法 1:通过 pip freeze 生成
pip freeze 是最简单的方法,它会列出当前环境中安装的所有 Python 包及其版本,并保存到 requirements.txt 文件中。
步骤:
激活虚拟环境(如果有): 如果你在虚拟环境中运行项目,请先激活虚拟环境:
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
运行 pip freeze 命令: 执行以下命令生成 requirements.txt:
pip freeze > requirements.txt
查看生成的文件: 打开 requirements.txt,内容类似如下:
absl-py==1.4.0
numpy==1.24.0
tensorflow==2.10.1
keras==2.10.0
protobuf==3.20.3
...
方法 2:通过 pip-tools 自动解析
如果你希望解析直接依赖及其所有子依赖,并生成兼容的 requirements.txt,可以使用 pip-tools。
步骤:
安装 pip-tools:
pip install pip-tools
创建 requirements.in 文件: 手动列出项目的直接依赖项(例如 TensorFlow、Keras 等)。
文件内容如下:
tensorflow>=2.10,<2.14
keras<2.15
运行 pip-compile 命令:
pip-compile
这会生成一个解析后的 requirements.txt 文件,列出所有兼容的依赖及其版本。
查看生成的 requirements.txt 文件: 内容可能如下:
tensorflow==2.13.1
keras==2.13.1
protobuf==3.20.3
numpy==1.24.0
...
方法 3:通过 pipreqs 按代码需求生成
如果你的项目中安装了许多无关包,可以通过分析代码需求生成最小化的 requirements.txt。
步骤:
安装 pipreqs:
pip install pipreqs
运行 pipreqs 生成依赖: 假设你的项目目录是 /path/to/project,执行:
pipreqs ./ --force --ignore .\my-hls-test\,.\.venv\
忽略某些不包含代码的文件
这会在项目目录下生成一个 `requirements.txt` 文件,仅包含代码实际使用的依赖。
查看生成的文件: 生成的文件内容会更简洁,例如:
tensorflow==2.13.1
keras==2.13.1
方法 4:通过 conda list(适用于 Conda 环境)
如果你使用的是 Conda 环境,可以通过 conda list 导出依赖。
步骤:
导出依赖为 requirements.txt:
conda list --export > requirements.txt
查看生成的文件: 内容可能如下:
# This file may be used to create an environment using:
# $ conda create --name <env> --file requirements.txt
tensorflow=2.10.1
keras=2.10.0
选择方法的建议:
方法 1:快速生成完整依赖列表,但可能包含未使用的包。
方法 2:用于锁定兼容版本,适合需要解析依赖冲突的项目。
方法 3:用于生成最小化依赖列表,避免包含未使用的包。
方法 4:适合 Conda 环境,但生成的格式需要适配 pip。
根据项目需求选择适合的方法即可!
领取专属 10元无门槛券
私享最新 技术干货