2016-06-27 2 views
0

Я унаследовал раздутый проект Django, который развернут через Heroku и который включает в себя множество больших библиотек (включая numpy, scipy и т. Д.). Похоже, предыдущий разработчик заморозил всю свою виртуальную среду, и я прилагаю все усилия, чтобы сократить зависимости, которые не используются.Найти размер каждого скомпилированного модуля в виртуальной среде Python?

После того, как возникла необходимость в установке MatPlotlib, Heroku дал мне ошибку, что размер слитка слишком велик. Эта библиотека более 50 МБ сама по себе.

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 и просмотреть скомпилированный размер каждого модуля?

ответ

2

Если предположить, что у вас есть виртуальная среда настройки и вся ваша зависимость в 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, но это может быть достаточно.

+0

Спасибо! Это очень полезно и, безусловно, хорошее начало. –