一、使用 pip freeze(通用基础版)
适用场景:适合传统虚拟环境(如 venv、virtualenv)或全局环境。
1.1.激活虚拟环境(若使用)
# Windows
.\venv\Scripts\activate
# macOS/Linux
source venv/bin/activate
1.2.导出所有已安装的包
pip freeze > requirements.txt
注意:
-
会导出当前环境中所有包(包括间接依赖),可能包含冗余包
-
生成的版本号是精确版本(如
requests==2.26.0)
二、使用 pipreqs
推荐:按实际导入分析
适用场景:仅导出项目中实际使用的包(基于代码中的 import 语句)。
2.1.安装工具
pip install pipreqs
2.2.生成依赖文件
pipreqs ./ --encoding=utf-8 --force
参数说明:
-
./:项目根目录 -
--encoding=utf-8:避免编码问题 -
--force:覆盖已有文件
优点:
-
自动分析项目代码,只生成实际使用的包
-
忽略开发环境中的无关依赖
三、使用 Poetry(现代项目管理)
适用场景:使用 Poetry 作为包管理工具的项目。
3.1.导出依赖
生成标准 requirements.txt
poetry export -f requirements.txt --output requirements.txt
3.2.若需包含开发依赖
poetry export --dev -f requirements.txt --output requirements-dev.txt
特点:
-
从
pyproject.toml生成精确依赖 -
支持哈希校验(
--without-hashes可禁用)
四、使用 Pipenv(另一现代工具)
适用场景:使用 Pipenv 管理依赖的项目。
4.1.生成 requirements.txt
pipenv lock -r > requirements.txt
4.2.生成开发依赖
pipenv lock -r --dev > requirements-dev.txt
五、手动维护(精准控制)
直接编辑 requirements.txt 文件,按以下格式编写:
# 核心依赖
requests>=2.25.1
numpy==1.21.2
# 开发依赖
pytest>=6.2.5
flake8>=3.9.2
常见问题
-
No module named错误:-
确保已激活正确的虚拟环境
-
运行
pip install -r requirements.txt
-
-
版本冲突:
-
使用
pip install --upgrade package更新特定包 -
或手动调整
requirements.txt中的版本号
-
-
跨平台兼容性:
-
使用
pip freeze --exclude-editable > requirements.txt排除本地包
-
通过以上方法,您可以高效管理 Python 项目的依赖关系,确保开发环境的一致性。
希望对大家有所帮助,建议收藏起来已备用时之需,如有错误敬请留言指正。
1152

被折叠的 条评论
为什么被折叠?



