Как превратить скрипт.py в программу.exe

Аватарка пользователя Елена Капаца

В статье рассмотрим, как работает превращение файла .py в программу .exe с помощью PyInstaller.

Обложка поста Как превратить скрипт.py в программу.exe

Как только первая полноценная программа выходит из-под клавиатуры, ей хочется похвастать, не так ли? Но потенциальные пользователи вряд ли захотят устанавливать себе IDE и все зависимости — это долго и муторно.  Чтобы упростить им задачу и показать программу большему числу людей, создатели языка продумали, как сделать из кода  исполняемую операционкой программу. Превращение в файла .py в .exe обычно делается с помощью PyInstaller, py2exe или cx_Freeze. Посмотрим, как работает PyInstaller:

Установка

Вы можете сделать это с помощью pip. Откройте командную строку и введите:

pip3 install pyinstaller

Как превратить скрипт.py в программу.exe 1

Я использую простейший скрипт, который экспортирует константный датафрейм в файл.csv:

import pandas as pd

data = [10,20,30,40,50,60]

df = pd.DataFrame(data, columns=['Numbers'])

df.to_csv('sample_output.csv', index=False)

То есть я ожидаю, что после запуска exe-программы увижу той же папке csv-файл.

До сих пор бывает, что библиотека ставится без «проваливания» в выделенную виртуальную среду и потом не запускается. Так что для порядка на вашем ПК рекомендую проводить такой эксперимент после запуска следующих команд:

python3 -m venv sample_env

source sample_env/   

Впрочем, в этот раз обошлось без проблем и PyInstaller заработал.

Преобразование

Перейдите в каталог со скриптом Python, который хотите преобразовать в .exe. Используйте команду cd для перехода в нужную директорию. Например:

cd C:\my_script_folder\

Уже в директории, вы можете запустить PyInstaller и преобразовать скрипт Python в .exe. Если скрипт называется my_script.py, введите:

python3 -m PyInstaller my_script.py

Как превратить скрипт.py в программу.exe 2
Как превратить скрипт.py в программу.exe 3

Это создаст .exe-файл в поддиректории dist. Чтобы программа стала одним .exe-файлом, добавьте флаг --onefile:

python3 -m PyInstaller --onefile my_script.py

Вывод у процесса получился избыточный, так что если вы не хотите видеть консоль при выполнении программы, добавьте флаг --noconsole:

pyinstaller --onefile --noconsole my_script.py

В результате рядом с py-скриптом ляжет директория, где в подпапке build будет лежать искомый исполняемый файл Unix (.exe):

Как превратить скрипт.py в программу.exe 4

Я работаю на macOS, однако всё равно могу запустить такой файл с помощью Терминала. Двойным щелчком запускаем my_script и получаем уведомление об исполнении программы:

Как превратить скрипт.py в программу.exe 5

Поскольку конечный путь не был указан, то выходной csv-файл просто лёг в стартовую директорию системы:

Как превратить скрипт.py в программу.exe 6
Обратите внимание, что при использовании PyInstaller все зависимости Python-скрипта должны быть установлены на вашем компьютере. И все используемые модули Python должны быть совместимы с PyInstaller.

Такой маленький шаг — прекрасный способ добавить себе уверенности как разработчику. Если вы все еще испытываете трудности с основами языка, попробуйте курс Result School по основам программирования. С промокодом TPROGER60 вы получите скидку 60%.

Если вы пробовали PyInstaller или аналоги, то какую программу экспортировали? Расскажите свою историю в комментариях.

Для начинающих
Python
8112