Языки программирования

Копирование проекта в «.exe» на Python

Написав программу на языке программирования Python мы начинаем думать: «А как собрать нашу программу в файл и запускать на любом компьютере без установки интерпретатора Python?». В этой статье мы разберемся в этом вопросе.
Существует большое количество библиотек, позволяющих это сделать, среди которых самые популярные: cx_Freeze, py2exe, nuitka, PyInstaller и др.
В данной статье мы подробно рассмотрим установку библиотеки PyInstaller и собрание проекта на операционной системе Windows, а это означает, что мы будем собирать проект в «.exe» файл.
На официальном сайте библиотеки PyInstaller вы можете изучить документацию по другим операционным системам.

Установка PyInstaller

Чтобы установить PyInstaller необходимо сначала установить Python.
Для корректной работы PyInstaller рекомендуется установить версию Python 3.7.6 т.к. на данный момент (Февраль 2020) библиотека корректно работает с данной версией Python, а с самой новой версией не работает.
Для установки библиотеки запустите командную строку от имени администратора:
Установим необходимую библиотеку pypiwin32. В командной строке напишите строку:
pip install pypiwin32
Если у вас выйдет строка «WARNING», как на картинке ниже, тогда необходимо обновить «pip» до последней версии. Код:
pip install --upgrade pip
После того, как обновите pip вводим строку для загрузки библиотеки:
pip install pyinstaller
После загрузки библиотеки проверьте её версию:
pyinstaller --version
Проверим все установленные библиотеки с помощью кода:
pip list
Все необходимые библиотеки мы установили. Если вы все сделали по описанию, тогда у вас должно быть как на изображении.

Собрание проекта

В статье «Библиотека Tkinter в Python» мы создали небольшое графическое приложение. Для примера возьмем это приложение и соберем в .exe файл (приложение имеет имя: form.py).
В папке с проектом запускаем командную строку (cmd):
Прописываем код:
pyinstaller form.py
Это и есть простейшая команда, которая соберет наш проект.

PyInstaller анализирует файл form.py и делает следующее:

  1. Пишет файл form.spec в той же папке, где находится скрипт.
  2. Создает папку build в той же папке, где находится скрипт.
  3. Записывает некоторые логи и рабочие файлы в папку build.
  4. Создает папку dist в той же папке, где находится скрипт.
  5. Пишет исполняемый файл в папку dist.

После работы программы вы найдете две папки: dist и build. В папке dist и находится наше приложение. Впоследствии папку build можно спокойно удалить, она не влияет на работоспособность приложения.

Наиболее часто используемые опции:

—onefile — сборка в один файл, т.е. файлы .dll не пишутся.
—windowed -при запуске приложения, будет появляться консоль.
—noconsole — при запуске приложения, консоль появляться не будет.
—icon=app.ico — добавляем иконку в окно.
—paths — возможность вручную прописать путь к необходимым файлам, если pyinstaller не может их найти(например: —paths D:\python35\Lib\site-packages\PyQt5\Qt\bin).
Синтаксис команды pyinstaller:
pyinstaller [options] script [script ...] | specfile
Используем опцию —onefile для сборки нашего проекта в один файл.

Можете взять другой проект или удалить все файлы проекта созданные библиотекой pyinstaller и собрать его заново. Код:
pyinstaller --onefile form.py
После работы программы вы найдете две папки: dist и build. В папке dist и находится наше приложение. Теперь наш проект собран в одном файле:
Запустите собранный .exe файл проекта и проверьте его работоспособность. На этом наша статья подходит к завершению. В комментариях вы можете задавать интересующие вопросы.

Видео по копированию проекта в «.exe»:
Самоучитель по Python