Научите вас шаг за шагом, как упаковать его в exe-программу на основе Python.
Научите вас шаг за шагом, как упаковать его в exe-программу на основе Python.

Предисловие

Основная причина упаковки программ Python в exe (исполняемые файлы) — облегчить распространение и использование, одновременно защищая код и улучшая взаимодействие с пользователем. . Этот процесс имеет несколько ключевых преимуществ:

  • Нет необходимости устанавливать Python:Самая большая выгода – это,Конечным пользователям не нужно устанавливать его на свои компьютеры.Pythonзапустить программу。Это значит, что даже незнакомыйPythonили Не установленоPythonпользователи среды,Также легко запустить вашу программу.
  • Упрощение развертывания:Упакуйте программу вилинесколько файлов,Упрощает развертывание и распространение. Пользователям нужно только загрузить exe-файл.,Не нужно беспокоиться о зависимых библиотеках и других ресурсах.
  • Кроссплатформенная совместимость:Хотя упаковано какexeв основном дляWindowsпользователь,Но используя такие инструменты, как,Вы также можете создавать исполняемые файлы для macOS и Linux.,тем самым усиливая Кроссплатформенная совместимость。
  • Защитите исходный код:Хоть и не абсолютный,Но упаковка программы в exe-файл может в определенной степени защитить ваш исходный код.,Запретите пользователям прямой доступ и изменение.
  • пользовательский опыт:Для тех, кто привык к двойному кликуexeдокументзапустить программуизWindowsпользователь Давайте поговорим,Это обеспечивает модель использования, которая больше соответствует их ожиданиям.
  • Интегрированные ресурсы:путем упаковки,Вы можете интегрировать различные ресурсы, необходимые программе (например, изображения, файлы данных и т. д.) в один файл.,Уменьшить потериили Риск неправильного пути。
  • Оптимизация производительности:Некоторые инструменты упаковки позволяют оптимизировать,Для улучшения производительности программы при запуске.
  • Профессиональный вид:Для программного обеспечения для бизнесаили Широко ориентированныйпользователь群из应用程序Давайте поговорим,Предоставление стандартного установщика exe может произвести у пользователей более профессиональное впечатление.

Технологии и методы упаковки Python в исполняемые программы exe

Для упаковки программы Python в исполняемый файл EXE для платформы Windows можно использовать несколько методов или инструментов. Ниже приведены некоторые часто используемые инструменты упаковки:

1、 PyInstaller : Наверное, один из самых популярных упаковочных инструментов. Он поддерживает упаковку приложений Python в отдельный исполняемый файл без использования локальной среды Python. PyInstaller поддерживает несколько платформ, включая Windows, macOS и Linux.

2、 cx_Freeze : это еще один широко используемый инструмент, который можно использовать для создания кроссплатформенных приложений, включая EXE-файлы, в Windows. cx_Freeze — это инструмент, управляемый сценариями, который позволяет пользователям настраивать процесс упаковки с помощью сценариев.

3、 py2exe : это инструмент, разработанный специально для Windows, который может конвертировать сценарии Python в исполняемые файлы, которые работают только в Windows. py2exe хорошо справляется с обработкой зависимостей и включением необходимых библиотек, но не поддерживает Python. Версия 3.5 и выше.

3、 Nuitka : Nuitka — это компилятор Python, который компилирует код Python в двоичные исполняемые файлы. Его можно использовать не только для создания автономных исполняемых файлов, но и для оптимизации производительности кода Python.

4、 Py2app : Хотя py2app в основном используется для создания пакетов приложений в macOS, его также можно использовать для создания автономных исполняемых файлов в Windows.

5、 PyOxidizer : это относительно новый инструмент, который создает автономный двоичный исполняемый файл, содержащий интерпретатор Python и зависимые библиотеки. PyOxidizer ориентирован на создание небольших, быстрозапускаемых приложений.

6、 Briefcase : Briefcase — это инструмент для упаковки проектов Python в автономные приложения, поддерживающие несколько платформ, включая Windows, macOS и Linux.

Я нашел сравнение в Интернете:

Руководство по использованию PyInstaller для упаковки программ Python в исполняемые файлы exe

(1) Установите pyinstaller

Язык кода:shell
копировать
pip install pyinstaller

При обновлении:

Язык кода:shell
копировать
pip install --upgrade pyinstaller

(2) Знакомство с часто используемыми параметрами

Некоторые часто используемые параметры PyInstaller и их описания:

Язык кода:shell
копировать
--onefile или -F:

Создайте один исполняемый файл. По умолчанию PyInstaller создает папку, содержащую файлы зависимостей.
При использовании этой опции все зависимости упаковываются в один файл.
--noconsole или -w:

Используется для приложений с графическим интерфейсом без отображения окна консоли.
Не применимо к консольным программам, требующим взаимодействия.
--console, -c:

Принудительно открыть окно консоли (поведение по умолчанию).
--icon=путь к значку:

Добавьте значок в созданный exe-файл.
Путь к значку должен быть полным путем к файлу .ico.
--add-data=<SRC;DEST>:

Включайте файлы, отличные от Python, в упакованные приложения.
<SRC;DEST>это пара путей источника и назначения,Разделяйте точкой с запятой; В Linux и MacOS,Используйте двоеточие:вместо точки с запятой。
--name=имя:

Укажите имя выходного файла.
--paths=пути:

Добавьте дополнительные пути при поиске импортированных модулей.
--hidden-import=имя модуля или --hiddenimport:

Укажите скрытый импорт, который не может быть автоматически обнаружен PyInstaller.
--windowed:

Другой способ написать --noconsole.
--version-file=файл:

Добавляет ресурс версии из указанного файла в исполняемый файл.
--runtime-hook=Файл:

Хуки времени выполнения — это сценарии, которые запускаются во время инициализации интерпретатора Python.
--distpath=DIR:

Укажите папку распространения вывода, по умолчанию — ./dist.
--workpath=DIR:

Укажите рабочую папку для хранения временных рабочих файлов. По умолчанию — ./build.
--clean:

Очистите временные файлы и кеш, созданные PyInstaller.
--debug:

Сгенерируйте выходные данные и файлы для отладки.
--upx-dir:

Если у вас установлен инструмент сжатия UPX, этот параметр указывает его путь.

(3) Как упаковать в exe

1. Напишите свой собственный код Python, например:

hello.py:

Язык кода:python
кодКоличество запусков:0
копировать
print("Hello world!")

2. Выполнение упаковки команд

Язык кода:shell
копировать
pyinstaller hello.py

Вы можете заменить hello.py записью файла, которую необходимо упаковать.

3. Он будет сгенерирован после выполнения.

После выполнения указанной выше команды PyInstaller создаст две папки в текущем каталоге: build/ и dist/.

Папка dist/ содержит исполняемые файлы.

Если все в порядке, exe-файл будет найден здесь.

4. Запустите файл

Вы можете дважды щелкнуть его, чтобы запустить, или запустить непосредственно в cmd.

(4) Расширенное использование

1. Один файл (--onefile):

Используйте параметр --onefile для создания одного exe-файла:

Язык кода:shell
копировать
pyinstaller --onefile your_script.py
Это создаст один exe-файл, содержащий все зависимости.

2, Нет консоли (--noconsole):

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

Язык кода:shell
копировать
pyinstaller --noconsole your_script.py

3. Добавьте значок (--icon=path/icon.ico):

В exe-файл можно добавить значок:

Язык кода:shell
копировать
pyinstaller --onefile --icon=путь/icon.ico your_script.py

4. Добавьте файлы данных:

Если вашему приложению требуются дополнительные файлы данных (например, изображения, текстовые файлы и т. д.), вы можете указать их с помощью опции --add-data.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose