Перейти к содержимому

Как сделать программу на python в exe

  • автор:

Компиляция программы на python 3 в exe с помощью программы cx_Freeze

Python 3 логотип

Наверняка, у каждого Python-программиста возникало непреодолимое желание, а изредка и реальная потребность, скомпилировать свою программу на python в exe файл. Сегодня я расскажу, как это сделать с помощью программы cx_Freeze.

Вопрос 1: а оно надо?

Прежде, чем начинать компилировать программу, нужно убедиться, что это действительно необходимо.

«Компиляция» программы на python — процесс, который может сопровождаться множеством проблем. Более того, это не компиляция в машинный код, как, например, программы на C, а лишь «сборка» в исполняемый файл вашей программы вместе с частью интерпретатора python.

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

Установка cx_Freeze

Если компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии).

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

Компиляция

Компилировать будем программу «блэкджек» (файл 21.py) (кому лень смотреть, привожу полный исходный код).

   Создаём в папке с программой файл setup.py с содержимым:
Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:\Dima\py). Запускаем команду C:\Python34\python.exe setup.py build (вместо C:\Python34 нужно написать папку, куда установлен python).

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

Поздравляю! В папке build теперь есть ваша папка с исполняемым файлом!

Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде:

И скомпилировать ещё раз.

Также можно создать msi-архив командой C:\Python34\python.exe setup.py bdist_msi.

Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами.

Для их решения следует воспользоваться официальной документацией.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Как из файла Python3 создать .exe на Windows

pythonexe

Мы рассмотрим создание .exe с помощью библиотеки модуля py2exe. Для этого необходим Python 3.4 и ниже.

Если у вас установлена более высокая версия Python, попробуйте использовать Способ 2 (ниже)

В этом примере мы рассмотрим создание .exe на примере Python3.4.

Прежде всего на нужно создать виртуальное окружение для Python3.4. В этом примере мы назовем myenv, Вы можете выбрать любое другое имя, но не забывайте сделать соответствующие изменения.

На терминале наберите следующие команды:

>py -3.4 -m venv myenv > myenv\Scripts\activate.bat

В командной строке появится префикс myenv, а это значит, что виртуальное окружение с именем myenv загружено. Все команды Python теперь будет использовать новое виртуальное окружение.

Теперь давайте установим py2exe (https://pypi.python.org/pypi/py2exe~~HEAD=dobj) в нашем виртуальном окружении:

>pip install py2exe

И, наконец, чтобы создать единый EXE-файл, в нашем виртуальном окружении выполняем команду:

>python -m py2exe.build_exe hello.py -c --bundle-files 0

(замените hello.py на имя вашего скрипта. Если скрипт находится в другой папке, то нужно использовать полный путь к вашему сценарию, например, C:\Projects\Python\ hello.py). Это создаст папку DIST, которая содержит исполняемый файл. Для быстрого доступа к нему, наберите в терминале:

> explorer dist

Вы увидите путь к папке, где находится EXE-файл.

Примечание: При выполнении, откроется окно и исчезают так же быстро, как и появилось.
Это происходит потому, что операционная система автоматически закрывает терминал, в котором консольная программа закончена.
Для того, чтобы изменить эту ситуацию, можно добавить строчку

> input (" Нажмите для выхода . ")

в конце файла Python. Интерпретатор будет ждать ввода пользователя, а окно будет оставаться открытым, пока пользователь не нажимает клавишу ввода.

Вы можете подробно изучить использование py2exe в документации на странице модуля: https://pypi.python.org/pypi/py2exe
Выход из виртуального окружения производится командой

>deactivate

Способ 2

Через командную строку Windows устанавливаем pyinstaller:

>pip install pyinstaller

В командной строке переходим в папку, где находится файл

cd c:\.

Затем в командной строке набираем команду

pyinstaller --onefile example.py

Вместо exapmle.py используем имя файла, из которого нужно создать exe файл.

Через пару минут все готово! Скоркее всего, exe файл будет находится во созданной подпапке dist

Конвертировать python-программу в exe файл

Хочу преобразовать в .exe файл. Python версии 3.6, операционная система Windows 10. P.S. Уже попробовал cx_Freeze и pyinstaller. Не преобразовывает. cx_Freeze просто не создает папку build, а pyinstaller создает папку, но когда я запускаю .exe файл, то он сразу же закрывается.

Отслеживать
48.6k 17 17 золотых знаков 56 56 серебряных знаков 100 100 бронзовых знаков
задан 16 авг 2018 в 9:05
Tim Safonov Tim Safonov
1 2 2 бронзовых знака
Если файл сразу закрывается, попробуйте запустить его из cmd, и посмотрите какие ошибки пишет.
16 авг 2018 в 9:40
cx_Freeze при "упаковке" какие-то ошибки пишет?
16 авг 2018 в 9:40

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Если компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии).

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

Создаём в папке с программой файл setup.py с содержимым:

from cx_Freeze import setup, Executable setup( name = "Имя", version = "Ваша версия float или int", description = "Ваше описание", executables = [Executable("Путь к файлу")] ) 

Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:\Dima\py). Запускаем команду C:\Python34\python.exe setup.py build (вместо C:\Python34 нужно написать папку, куда установлен python).

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

Предупреждения в процессе компиляции
Запуск exe файла

Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде:

input("Press Enter") 

И скомпилировать ещё раз.

Также можно создать msi-архив командой C:\Python34\python.exe setup.py bdist_msi.

Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами.

Упаковка Python программы в EXE файл

Чтобы понять, зачем это может потребоваться, предположим, что вы написали программу на Python. И теперь нужно ее показать руководителю, заказчику или другу. И здесь сразу могут возникнуть трудности. Потому что принимаемая сторона вряд ли обладает познаниями в программировании и к тому же не имеет на компьютере установленного Python, чтобы иметь возможность запустить ваш код.

Гораздо проще заранее позаботиться о простоте запуска Python программы, и упаковать ее в исполняемый EXE файл. Преимущество такого файла в том, что он запускается любым пользователем на любом компьютере под управлением Windows. Даже если на компьютере не установлен Python.

Для упаковки программы будем использовать пакет PyInstaller и надстройку над ним auto-py-to-exe

Ссылки на документацию по данным пакетам:

PyInstaller генерирует EXE файл из командной строки. А auto-py-to-exe надстраивает над PyInstaller пользовательский интерфейс, в котором удобно выбирать различные параметры.

Установка пакетов для упаковки в EXE файл

Для установки пакетов, мы будем использовать pip — систему управления пакетами, написанными на Python.

    1. В поиске Windows набираем cmd
    2. Запускаем приложение Командная строка от имени администратора(ВАЖНО!)
    3. Набираем команды для установок пакетов и нажимаем Enter:

      pip install pyinstaller


      • pip install auto-py-to-exe

    4. Дополнительные пакеты установлены.

Упаковка Python программы в EXE файл

Давайте упакуем с помощью установленных пакетов готовую программу A/B Калькулятор.

Для начала, посмотрим как она запускается в неупакованном виде. Открываем файл программы в редакторе Geany и нажимаем Выполнить (F5). Программа выполняется на фоне командной строки. И когда мы окно программы закрываем, окно консоли еще остается открытым.

Перед генерацией EXE файла подготовим директорию, куда он будет сохраняться. Например, на Рабочем столе создаем папку Генерация EXE

  1. Запускаем командную строку от администратора
  2. Вводим команду auto-py-to-exe
  3. В окне приложения производим настройки:
    • Указываем путь к директории с исходным файлом программы
    • Выбираем опцию Один файл
    • Выбираем опцию Оконное приложение (скрыть консоль)
    • Нажимаем Настройки и указываем путь к директории экспорта, куда будет сохранен готовый EXE файл
    • Жмем кнопку Конвертировать PY в EXE

Некоторое время программа производит обработку. После окончания обработки появляется кнопка Открыть папку вывода . Нажимаем ее и видим в папке готовый EXE файл.

Запускаем EXE файл и проверяем работоспособность. Программа AB Калькулятора запустилась без использования консоли. Теперь файл программы можно пересылать для запуска абсолютно на любом компьютере.

Примечание. Если в процессе запуска EXE файлов возникают проблемы, проверьте, установлен ли Microsoft Visual C++ Redistributable. Если требуется его установка, найти его можно по ссылке .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *