Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 25, 2017 14:50:00

Nikrir
Зарегистрирован: 2017-09-08
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

как скомпелировать из py в exe

Не я первый не я последний кто задаёт этот вопрос, но компелировать py. Пока я искал, 3 раза нарвался на вирусы которые блокировали комп или спамили рекламой. Подскажите что лучше использовать и где искать.

Офлайн

#2 Сен. 25, 2017 15:22:40

Slow
Зарегистрирован: 2017-07-26
Сообщения: 88
Репутация: +  4  -
Профиль   Отправить e-mail  

как скомпелировать из py в exe

https://pypi.python.org/pypi/py2exe/

Но будет лучше, если вы для себя поймете, что это не нужно.

Офлайн

#3 Сен. 26, 2017 11:43:23

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

как скомпелировать из py в exe

Давайте все же определимся, скомпилировать или просто сделать исполняемый файл..
py2exe, cxFreeze, pyInstaller - по сути не компилируют, а просто собирают этакий самораспаковывающийся потрабельный пайтон с вашим скриптом.
Из всех трех я пробовал cxFreeze, и pyInstaller, чисто субьективно мне больше понавился последний.
cxFreeze уж больно много всего ненужного тянет с собой. Для сравнения екзешник упакованый cxFreeze зaнимал 50\150 MB в упакованом\распакованом состоянии, pyInstaller -ом 15\38. Потому как первый упаковал туда весь pyQt а второй взял из pyQt только десятток ДЛЛ-ек и пяток pyd -файлов.
МБ если cxFreeze както настроить, подобавляв вских инклудов и екслудов, оно и уменшит итоговый размер, но pyInstaller это делает из коробки без танцев с бубном.

Есть еще Nuitka достаточно многообещающий проэкт. Она переводит Python в программу С++, которая потом использует “libpython” для выполнения.. она именно компилирует.
Если опустить разные мелочи то то у Nuitka один существенный недостаток. Она какимто образом цеполяет pythonXX.dll так, что другие приложения использующие python вынуждены использовать туже версию.
Когда скомпилированый нуиткой екзешник с использованием python35.dll работал, то я не смог паралельно запустить pyScripter который на тот момент работал с python 3.4 , ругалось что не та версия python. При этом когда екзешник завершал работу pyScripter отлично запускался. С чем это связанои как победить особо разбираться не стал, так это было исключительно ради “на посмотреть” что за зверь такой Nuitka. С собранными cxFreeze/pyInstaller-ом таких коясков не наблюдалось без проблем одновременно работали приложения использующие разные версии пайтона.

Но в любом случае будте готовы что при компиляции у вас могут полезть “косяки” и то что чудно работало в интерпертаторе, не будет работать так как нужно в скомпилированом виде..
Когда я экспериментировал с нуиткой, екзешник собирался но не хотел работать пока я не добавил “import win32timezone, encodings” в скрипт, хотя ни один из этих модулей напрямую не использовался.

PS ссылки на программы легко гугляться по названию.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Сен. 26, 2017 11:55:57)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version