Т.е. на выходе получаем один бинарник, который работает без 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 (http://mirror.yandex.ru/puppyrus/puppyrus-a64/pfs-portable/youtube-dl-bin-p-20.11.21_64-sf01.pfs) - оптимизированный бинарник
Другой компилятор Nuitka (https://www.opennet.ru/opennews/art.shtml?num=56152)
Больше нашего в 3 раза
В yt-dlp_linux, в питоновскую либу впихнули наверно все что можно и нельзя, в сравнении с арч-пакетом python-3.10. Разница 19 mb против 3,7 mb:
live@roll2110 /mnt/sda3/Загрузки/yt-dlp_linux % lh libpython3.10.so.1.0
-rwxr-xr-x 1 live live 19M июн 22 04:15 libpython3.10.so.1.0
live@roll2110 /mnt/sda3/Загрузки/yt-dlp_linux % cd /home/live/Загрузки/python-3.10.5-1-x86_64.pkg/usr/lib
live@roll2110 ..зки/python-3.10.5-1-x86_64.pkg/usr/lib % lh libpython3.10.so.1.0
-rwxr-xr-x 1 live live 3,7M июн 6 21:49 libpython3.10.so.1.0