查看: 175|回复: 1

Python依赖包一键导出与批量安装:freeze、pipreqs及离线部署实践

[复制链接]
发表于 1 小时前 | 显示全部楼层 |阅读模式
当我们在新的Windows 11(或其他系统)环境中部署Python项目时,往往会发现缺少大量依赖包。一个个手动安装不仅费时,还容易遗漏版本依赖。本文将介绍如何通过pip内置命令和第三方工具pipreqs,一键导出项目依赖列表,并实现在线或离线批量安装,提高部署效率。
  1. # 方法一:pip freeze(适用于纯净环境)
  2. pip freeze > ./requirements.txt
复制代码
  1. # 方法二:pipreqs(适用于复杂环境,仅抽取项目实际使用的依赖)
  2. pip install pipreqs
  3. pipreqs ./ --encoding=utf8
复制代码

导出依赖后,可使用以下命令一键安装:
  1. # 在线安装(需网络)
  2. pip install -r ./requirements.txt
复制代码

若目标环境无网络,可采用离线方式:
  1. # 第一步:在当前有网络的环境下载离线包
  2. pip wheel -w python_package_tmp_dir -r .\requirements.txt
  3. # 或使用 pip download(详见下文区别)
  4. pip download -d python_package_tmp_dir -r requirements.txt
  5. # 第二步:在离线环境安装
  6. pip install --no-index --find-links=python_package_tmp_dir -r requirements.txt
复制代码

关于pip wheel和pip download的区别:
pip wheel会从PyPI下载包并生成二进制wheel文件(.whl),该文件可直接用于离线安装,也可传播给其他机器,便于分发。pip download则下载包的源代码及依赖文件(包含wheel时也会同时下载),但不会主动生成wheel格式,适用于用户需要手动编译或审查源码的场景。

总结:
- 若环境干净且所有包均为项目所用,使用pip freeze快速导出。
- 若环境混杂或只关心项目实际依赖,pipreqs更为合适。
- 离线部署时,优先使用pip wheel生成wheel包,体积小且安装快;若需要源码调试,可选择pip download。

以上方法可有效解决Python项目迁移时的依赖管理问题,避免手动逐个安装的麻烦,提升开发与部署效率。
回复

使用道具 举报

发表于 1 小时前 | 显示全部楼层

Re: Python依赖包一键导出与批量安装:freeze、pipreqs及离线部署实践

这篇文章写得很实用,刚好解决了Python项目迁移时最头疼的依赖问题。我平时也常用pip freeze快速导出,但确实会发现很多无关包被带进去,pipreqs能精准抽取实际依赖这个点很赞。离线部署部分,pip wheel生成whl文件的速度和稳定性确实比源码安装好很多,你提到的wheel和download区别也解释得很清楚,之前一直纠结该用哪个,现在明白了。另外提个小建议,如果在生成requirements.txt后手动检查一下版本号是否锁定,能避免不同环境下的兼容性问题。感谢分享!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-6-11 11:29 , Processed in 0.037370 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部