Сайт | Скачать | Видео | Wiki

Автор Тема: Pyinstaller - компиляция python скрипта в bin : youtube-dl  (Прочитано 150 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 30211
  • Репутация: +204/-0
  • Автор темы
    • PuppyRus-A
Т.е. на выходе получаем один бинарник, который работает без python в любом линуксе (если вы специально не выкинули из него системные либы - см. ниже)
Есть версии под python2 (бинарник получается меньше) и python3

Уменьшение размера бинарника :
1. Компилим в папку : pyinstaller -D ваш.py
2. Заходим в dist/ваш и методом исключения убираем лищнее
3. Правим ваш.spec - пример в аттаче
4. Компилим в бинарник pyinstaller -D ваш.py - пример в аттаче
На примере youtube-dl - размер удалось уменьшить почти в 2 раза

Плюсы :
1. Удобно для распространения в разных дистрибах
2. Бинарник работает быстрее, чем скрипт
Код
# time ./youtube-dl -s https://www.youtube.com/watch?v=aTTx5WsswPM
real 0m3,858s
user 0m2,857s
sys 0m0,186s
root@pra-roll:1# time ./youtube-dl -s https://www.youtube.com/watch?v=aTTx5WsswPM
real 0m2,209s
user 0m1,365s
sys 0m0,080s

Минусы :
1. Скомпилить получится не все что угодно (или надо очень уметь)
2. Размер может получиться очень большим. Программа с GUI на python3 получается юольше 100мб

Пример:
https://forum.puppyrus.org/index.php?topic=20811.msg172892#msg172892
https://mirror.yandex.ru/puppyrus/roll/pkg/roll/pkg/2008 - pyinstaller и пр. пакеты для prar20.08 на которых можно поэкспериментировать
youtube-dl-bin-p-20.11.21_64-sf01.pfs - оптимизированный бинарник



« Последнее редактирование: 23 Ноябрь 2020, 11:05:02 от sfs »

Оффлайн sfs

  • Администратор
  • Ветеран
  • *****
  • Сообщений: 30211
  • Репутация: +204/-0
  • Автор темы
    • PuppyRus-A