Компилируем код Python в файл exe
Код, написанный на Python, позволяет решать много прикладных задач: автоматизация отчетности, алгоритмы поиска, анализа и пр. Однако не у всех потенциальных пользователей может быть установлен сам Python и тем более не все являются экспертами в программировании. Выручить может программа, которая будет отрабатывать написанный вами код без установки библиотек Python и необходимой оболочки. Одним из таких решений может быть компиляция кода Python а файл exe. Дальше простым языком мы постараемся объяснить, как его скомпилировать и какие есть нюансы.
Для начала Вам необходимо скачать компилятор pyinstaller, для чего вам понадобится команда:
Далее ваш код в формате. py необходимо разместить в системную папку Scripts.
Путь к этой папке обычно выглядит так:
Если Вы инсталлировали Python в другое место, соответственно ищите папку там.
Далее приступаем собственно к компиляции, для чего: выделяем путь к папке Scripts в окне браузера, вместо него набираем команду cmd и жмем Enter.
У Вас сразу будет указан верный путь к файлу:
В продолжение строки с директорией файла необходимо набрать команду: pyinstaller Report.py —onefile
Где Report.py – это имя вашего файла, — onefile – означает, что программа будет скомпилирована в единый файл.
Нажимаем Enter. Pyinstaller приступает к сборке программы.
В зависимости от размера кода и количества, используемых в нем библиотек, время сборки программы может занять 5-15 мин. Успешностью завершения будет являться следующее сообщение:
Готовый файл находим в папке dist.
Данный метод компиляции не оптимизирует включение только необходимых библиотек, поэтому нужно быть готовым к тому, что его размер будет занимать достаточно объема. В нашем случае код из 120 строк с библиотекой Pandas и Datetime собран в программу весом почти 220 Mb. Теперь данным файлом может пользоваться любой сотрудник.
Хотелось бы обратить внимание на следующие нюансы: если вы компилируете файл на 64 битной OS Windows 10, то он не запустится на 32 битной OS Windows 7.
Если же файл будет скомпилирован на 32 битной OS Windows 7, то его можно будет запустить как на 32 битных, так и на 64 битных OS Windows 7/10.
Странно такое тут видеть, но сохранил, задача может стать актуальной
Юрий, спасибо! С радостью будем делиться полезными лайфхаками и дальше:)
Уж сколько раз твердили миру.... А воз и ныне там. Не компилируется Python в exe. Начините, наконец, думать и учить матчасть.
А если руки чешутся?
Программисты ( которые дружат с головой) и знают, что pyinstaller это самораспаковывающийся в TEMP архив (на распаковку которого тратится время) создают автономные приложения для распространения на основе Emdedded Python, который есть на офф. сайте.
Тогда нужно осознать, что интерпретируемый язык нельзя скомпилировать каким-то образом, кроме как через жопу.
Откомпилируйте кто-нибудь unoconv
Это универсальный конвертор офисных документов через командную строку
pyinstaller: error: unrecognized arguments: -onefile
что делать?
--onefile
SyntaxError: invalid syntax что делать
дядь, это значит что чето ты не так написал. ищи ошибку
Просто автор не догадался текст статьи нормально отформатировать :)
У меня python 3.9.1 и что мне делать? не хочу устанавливать python 3.5 так как его уже удалили а поддержка python 3.5.11 и тд. прекратятся к слейдушему году или через несколько месяцев ((((
IT IT, при поиске решения, мы часто используем официальную документацию https://docs.python.org/3/index.html. Всегда рекомендуем ее изучать в первую очередь, если что-то не выходит
Скрипты отрабатывает но итоговый exe не работает. Говно этот pyinstaller.
Станислав, вот тут рассматривается некорректная работа файла exe. Может быть у вас похожая ошибка https://qna.habr.com/q/790525
я когда открываю ехе открывается командая строка и тут же закрывается
у меня почему то когда запускаю ехе открывается командная строка и окно игры а потом и тут же закрывается
помогите
Нужно запустить от имени администратора. Мне это помогло.
Автору респект и уважуха! Все работает pyinstaller name.py без лишних движений, версия python 3.8.
что делать если в папке дист нет файлов?
А если нужно скомпилировать приложение, где несколько python файлов?
Подобного опыта не было, тем не менее технически это скорее возможно и поиск выдает материалы, посвященные данной тематике
120 строк кода равно 220 МБт?..))
На Delphi 7 это будет 400 кБт !!!
А на C++ от Borland ещё меньше.
Все верно, код из 120 строк с библиотекой Pandas и Datetime собран в программу весом почти 220 Mb. Данный метод компиляции не оптимизирует включение только необходимых библиотек, поэтому нужно быть готовым к тому, что его размер будет занимать достаточно объема.