LINUX.ORG.RU

Создание автономных программ python3

 , ,


0

3

Есть цель создать из скрипта, автономную программу со встроенным интерпретатором python и зависимостями, дабы можно было её запускать без наличия python в системе.

Все что я нашёл это PyInstaller и cx_Freeze. Но последний не работает с python3.7. Остаётся только PyInstaller, однако инфы по нему в интернете немного. Обычно всё ограничивается командой типа pyinstall -F target_script.py, но тогда он генерирует бинарник с кучей *.so в той же директории.

Что надо?

Надо что-бы все *.so (кроме самого интерпретатора) лежали где-то в ./bin или ./lib

Т.е. так:
./target_script
./libpython37.so
./base_library.zip
./bin/*.so (остальные .so)

Ни в официальной документации, ни в инете способа так сделать я не нашёл. cx_Freeze так умеет, но как сделать подобное в этой программе я не знаю.

Либо накиньте других способов упаковки. Желательно максимально ручных


Засунь свой скрипт, интерпритатор питона и все нужные либы в AppImage — будет автономно.

anonymous
()

Есть цель создать из скрипта, автономную программу со встроенным интерпретатором python и зависимостями

Смотря, что за скрипт и зависимости, можно и в докер.

vvn_black ★★★★★
()

cx_Freeze уже не поддерживает 3.4 и версии старше 2.7, дает вывод именно такой, как тебе нужно. Есть баг с 3.7 на оффтопике, то ты разве на оффтопике собираешь?

byko3y ★★★★
()
Ответ на: комментарий от vvn_black

Смотря, что за скрипт и зависимости, можно и в докер.

И тогда на целевую машину нужно будет ставить еще минимум докер.

byko3y ★★★★
()

Если тебе нормально, то выше уже предложили AppImage, если можно по-наркомански, то Nuitka.

WitcherGeralt ★★
()
Последнее исправление: WitcherGeralt (всего исправлений: 1)

Либо накиньте других способов упаковки. Желательно максимально ручных

Когда я про эти ваши мучения со всякими фризами-нуитиками читаю, у меня чешутся руки попробовать такое:

  • создаёшь директорию
  • кладёшь в неё питон
  • кладёшь в неё свой скрипт
  • кладёшь в неё шелл-скрипт с #!/bin/sh в начале, который это хозяйство будет запускать
  • (опционально) пакуешь директорию в tar.gz
  • ???
  • ПРОФИТ
anonymous
()
Ответ на: комментарий от anonymous

кладёшь в неё шелл-скрипт с #!/bin/sh в начале, который это хозяйство будет запускать
(опционально) пакуешь директорию в tar.gz
???

...ты изобрел virtualenv.

byko3y ★★★★
()
Ответ на: комментарий от anonymous

"--relocatable" тебе в помощь. Хотя, никто не мешает активировать окружение после перемещения.

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.