自动创建 Python 的 requirements.txt 文件
自动创建 Python 的 requirements.txt 文件
技术背景
在 Python 开发中,requirements.txt
文件用于记录项目所依赖的第三方库及其版本,方便在不同环境中部署项目。然而,当从 GitHub 下载 Python 源代码时,有时会缺少该文件,手动创建既耗时又容易出错。因此,自动生成 requirements.txt
文件显得尤为重要。
实现步骤
方法一:使用 pipreqs
- 安装 pipreqs:
1
pip install pipreqs
- 生成 requirements.txt:若项目路径为当前目录,可使用:
1
pipreqs /path/to/project
若遇到编码问题,可指定编码:1
pipreqs .
1
pipreqs --encoding utf-8 /path/to/project
方法二:使用 pip freeze
- 创建虚拟环境(可选但推荐):
- Python 3:
1
2python3 -m venv .venv
source .venv/bin/activate - Python 2:
1
2
3pip install virtualenv
virtualenv <myenvname>
source <myenvname>/bin/activate
- Python 3:
- 安装项目依赖:
1
pip install <dependencies name>
- 生成 requirements.txt:
- Python 3:
1
pip3 freeze > requirements.txt
- Python 2:
1
pip freeze > requirements.txt
- Python 3:
方法三:结合 pipreqs 和 pip-tools
- 安装工具:
1
2pip3 install pipreqs
pip3 install pip-tools - 生成 requirements.in 和 requirements.txt:
1
pipreqs --savepath=requirements.in && pip-compile
方法四:使用 Anaconda
- 生成 requirements.txt:
1
conda list -e > requirements.txt
- 若遇到错误,使用 .yml 选项:
1
conda env export > <environment-name>.yml
- 创建新环境:
1
conda env create -f <environment-name>.yml
核心代码
使用 pipreqs 生成 requirements.txt
1 |
|
使用 pip freeze 生成 requirements.txt
1 |
|
结合 pipreqs 和 pip-tools 生成 requirements.txt
1 |
|
最佳实践
- 使用虚拟环境:避免全局环境中的无关依赖被包含在
requirements.txt
中。 - 定期更新 requirements.txt:在添加或删除依赖时,及时更新该文件。
- 使用固定版本号:确保项目在不同环境中的一致性。
常见问题
pipreqs 生成的文件不完整
可能是由于项目中存在编码问题或某些依赖未被正确识别。可尝试指定编码或手动检查并添加缺失的依赖。
pip freeze 包含了无关依赖
可使用虚拟环境,只在虚拟环境中安装项目所需的依赖,然后生成 requirements.txt
。
pipreqs 和 pip-tools 结合使用时在 Windows PowerShell 中报错
可使用 ( pipreqs --savepath=requirements.in ) -and (pip-compile)
替代。
自动创建 Python 的 requirements.txt 文件
https://119291.xyz/posts/2025-04-27.automatic-creation-of-python-requirements-txt-file/