Главная страница » Как сделать exe файл в python

Как сделать exe файл в python

Преобразование Python-скрипта в исполняемый. exe файл (для Windows) — это процесс, называемый "заморозкой" (freezing) или "упаковкой" (packaging). Это позволяет распространять ваше приложение без необходимости устанавливать Python на компьютере конечного пользователя. Упакованный. exe файл включает в себя интерпретатор Python и все необходимые библиотеки.

Самые популярные инструменты для этой задачи в Python:

PyInstaller (самый популярный и рекомендуемый) Cx_Freeze Nuitka (компилирует Python в C-код, что может дать прирост производительности)

Давайте сосредоточимся на PyInstaller, так как он наиболее прост в использовании и гибок.

Шаг 1: Установка PyInstaller

Для начала вам нужно установить PyInstaller с помощью pip:

Bash

Pip install pyinstaller

Шаг 2: Создание простого Python-скрипта

Давайте создадим простой пример скрипта, который мы будем преобразовывать в. exe. Сохраните его как my_app. py:

Python

# my_app. py
Import tkinter as tk
From tkinter import messagebox
 
Def show_message():
 messagebox. showinfo("Приветствие", "Привет из исполняемого файла Python!")
 
Def main():
 root = tk. Tk()
 root. title("Мое Python приложение")
 root. geometry("300x150")
 
 label = tk. Label(root, text="Нажмите кнопку ниже:")
 label. pack(pady=20)
 
 button = tk. Button(root, text="Показать сообщение", command=show_message)
 button. pack(pady=10)
 
 root. mainloop()
 
If __name__ == "__main__":
 main()

Шаг 3: Создание. exe файла с помощью PyInstaller

Откройте командную строку (CMD) или PowerShell и перейдите в каталог, где находится ваш файл my_app. py.

Базовая команда:

Самая простая команда для создания. exe файла:

Bash

Pyinstaller my_app. py

После выполнения этой команды PyInstaller начнет работать. Он создаст несколько каталогов и файлов:

    Build/: Временные файлы, используемые PyInstaller в процессе сборки. Dist/: Здесь будет находиться ваш исполняемый. exe файл и все необходимые библиотеки.

Если вы перейдете в папку dist/my_app/, вы найдете my_app. exe. При запуске этого файла откроется окно Tkinter, как и ожидалось.

Полезные опции PyInstaller:

Часто используются следующие опции:

· -w или —windowed / —noconsole: Создает приложение без консольного окна. Идеально для GUI-приложений (как наш пример с Tkinter).

Bash

Pyinstaller --windowed my_app. py

Или

Bash

Pyinstaller --noconsole my_app. py

· —onefile: Упаковывает все в Один исполняемый файл. Это очень удобно для распространения, но запуск может быть немного медленнее, так как при старте. exe файл распаковывает временные файлы.

Bash

Pyinstaller --onefile --windowed my_app. py

· —icon=your_icon. ico: Добавляет пользовательскую иконку к вашему. exe файлу. Иконка должна быть в формате. ico.

Bash

Pyinstaller --onefile --windowed --icon=my_icon. ico my_app. py

(Убедитесь, что my_icon. ico находится в той же папке или укажите полный путь к нему).

· —add-data "source;destination": Включает дополнительные файлы или папки, которые ваше приложение использует (например, изображения, конфигурационные файлы, базы данных).

      source: Путь к файлу/папке, которую нужно включить. destination: Путь внутри окончательной сборки, куда файл/папка должны быть скопированы. Важно для Windows: Разделитель для пути к файлу/папке должен быть ; (точка с запятой).

Bash

# Если у вас есть папка 'assets' с изображениями
Pyinstaller --onefile --windowed --add-data "assets;assets" my_app. py

Если ваш скрипт пытается получить доступ к этим файлам, вам может понадобиться получить путь к этим файлам внутри упакованного приложения. PyInstaller предоставляет функцию sys._MEIPASS для этого:

Python

Import sys
Import os
 
Def resource_path(relative_path):
 """Получает абсолютный путь к ресурсу, для работы в PyInstaller"""
 try:
 # PyInstaller создает временную папку и сохраняет путь в _MEIPASS
 base_path = sys._MEIPASS
 except Exception:
 base_path = os. path. abspath(".")
 
 return os. path. join(base_path, relative_path)
 
# Пример использования:
# image_path = resource_path(os. path. join("assets", "my_image. png"))
# photo = tk. PhotoImage(file=image_path)

· —clean: Удаляет временные файлы сборки перед началом процесса. Полезно, если возникают проблемы.

· —name "My Awesome App": Указывает имя для выходного. exe файла и папки в dist/.

Bash

Pyinstaller --onefile --windowed --name "MyApp" my_app. py

Шаг 4: Распространение. exe файла

После успешной сборки, .exe файл (и, возможно, сопутствующие DLL-файлы, если вы не использовали —onefile) будут находиться в каталоге dist/. Вы можете взять этот файл (или папку) и передать его другим пользователям, у которых нет Python.

Важные соображения:

Размер файла: Упакованные .exe файлы могут быть довольно большими, особенно с опцией —onefile, поскольку они включают интерпретатор Python и все необходимые библиотеки. Зависимости: PyInstaller пытается автоматически обнаружить все зависимости, но иногда ему требуется помощь (например, для динамически импортируемых библиотек). В таких случаях можно использовать опции —hidden-import или создавать. spec файл для более тонкой настройки. Антивирусы: Иногда антивирусы могут ошибочно помечать. exe файлы, созданные PyInstaller, как подозрительные. Это ложные срабатывания, но о них стоит знать. Виртуальные окружения: Настоятельно рекомендуется работать с PyInstaller внутри Виртуального окружения Python. Это гарантирует, что PyInstaller упакует только те библиотеки, которые действительно используются в вашем проекте, а не все, что установлено глобально. Платформозависимость: .exe файл, созданный на Windows, будет работать только на Windows. Для создания исполняемых файлов для macOS или Linux, вам нужно запускать PyInstaller на соответствующей операционной системе.

PyInstaller — это мощный и надежный инструмент, который значительно упрощает распространение ваших Python-приложений.

Оставьте комментарий

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

Прокрутить вверх