python - 在 Python virtualenv 中查找每个编译模块的大小?

标签 python django heroku virtualenv

我继承了一个通过Heroku部署的臃肿的Django项目,其中包含很多大型库(包括numpy、scipy等)。看起来以前的开发人员卡住了他的整个虚拟环境,我正在尽我所能修剪未使用的依赖项。

在需要安装 MatPlotlib 之后,Heroku 给我一个 slug size 太大的错误。该库本身超过 50MB。

remote: -----> Compressing...
remote:  !     Compiled slug size: 321M is too large (max is 300M).
remote:  !     See: http://devcenter.heroku.com/articles/slug-size

为了让这个应用程序更新新功能,我想 grep 这个应用程序中每个依赖项的大小,这样我就可以制作一个优先级列表来调查哪些是实际使用的。

如何循环查看我的 requirements.txt 文件中的依赖项列表并查看每个模块的编译大小?

最佳答案

假设您设置了一个虚拟环境并且所有依赖项都在 site-packages 中,您只需执行以下操作即可接近:

du -sh /path/to/site-packages/* | sort -hr

这是我机器上的输出:

29M     .../site-packages/django
7.0M    .../site-packages/pip
6.5M    .../site-packages/ckeditor
6.2M    .../site-packages/grappelli
5.2M    .../site-packages/IPython
...

当然,这并没有区分你的依赖关系和你的依赖关系的依赖关系,或者考虑到 .slugignore,但它可能已经足够好了。

关于python - 在 Python virtualenv 中查找每个编译模块的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38063014/

相关文章:

django - 如何在现有 View 中使用 Django 密码验证?

python - 堆叠具有重叠索引的数组。寻找循环上的矢量化方法

python - 使用python将命令解析为另一个软件界面

python - 当我运行脚本时,发送电子邮件不起作用,但逐行发送电子邮件却有效,为什么?

python - 如何从 C 中读取 python pickle 数据库/文件?

python - django-rest-framework + django-多态模型序列化

python - 为什么这个 Django View 在显示调试打印语句之前会出错?

heroku - 如何部署编译时间超过 60 秒的 Heroku 应用程序?

postgresql - 将rails应用程序部署到heroku时经常看到PG::InFailedSqlTransaction错误

ruby-on-rails - 将 Rails 应用程序部署到 Heroku 时出错 : simple_form issue