跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 有什么方法可以清理 venv 中,当前项目依赖的库文件?
未分類
21 5 月 2020

有什么方法可以清理 venv 中,当前项目依赖的库文件?

有什么方法可以清理 venv 中,当前项目依赖的库文件?

資深大佬 : miniyao 1

有一个项目的虚拟环境 venv,小组成员不断往里面 pip install 了很多依赖库,等到要在生产机上发布的时候,pip freeze > requirements.txt 里面就有很多有用的没用的全装进去了。

有什么方法可以清理吗?怎么分离 requirements.txt 里面哪些是必须依赖的库,哪些是没用的冗余?

大佬有話說 (8)

  • 資深大佬 : fgwmlhdkkkw

    能有多大?差那点磁盘吗……

  • 資深大佬 : fgwmlhdkkkw

    @fgwmlhdkkkw pip list 可以列出所有已安装的包,然后你运行程序,在程序中得到所有需要加载的包(具体 api 我不记得了,但是你甚至可以 hook import 模块来得到),然后对比一下。

  • 資深大佬 : wangyzj

    pipreqs

  • 資深大佬 : ClericPy

    以前一直用的 pipenv 或 poetry 管理依赖, 所以会自动清理不用的

    你如果想找个类似 `go mod tidy` 的东西… 为什么一开始不就写好 requirements 然后一直用它安装呢, 很少用 freeze 功能, requirements 里也只写最顶层依赖, 所以锁的估计不够严格, 才使我不得不转到 pipenv 上去的…

  • 資深大佬 : jin7

    pipdeptree pippurge

  • 資深大佬 : ericls

    反了 requirements 应该是 source of truth 而不是某个人的本地环境

    简单办法就是看看哪些有 import 咯

  • 資深大佬 : xpresslink

    主要明白一点很重要的东东,requirements.txt 只是开发者所需要的最顶层的依赖清单。
    在执行 pip install -r requirements.txt 的时候安装的东西远不是这个清单中的包,因为这些包本身还要依赖其它的包,在安装过程中如果没有就会自动安装其它包。
    但是要想要清楚的知道 requirements.txt 里面这些包依赖了哪些是比较困难的。
    最省事的办法就是直接把 venv 整改删除了,重建再执行 pip install -r requirements.txt

  • 資深大佬 : frostming

    最轻量的方法就是 5L @jin7 的,用 pipdeptree 查看依赖树,这样可以看到哪些包不需要再安全地卸载掉

    重一点就引入依赖管理 Pipenv, Poetry, PDM,把要的依赖定义下来,然后 clean 一遍,就把多余的去掉了

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具