Как открыть exe файл python

Обновлено: 05.07.2024

В этом уроке мы рассмотрим, как преобразовать скрипт Python в exe-файл в Windows с помощью Py2Exe, с примерами.

Вступление

Выполнение скриптов Python требует множества предварительных условий, таких как установка Python, установка множества модулей, использование командной строки и т. Д. при выполнении файла .exe все очень просто.

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

Самый популярный способ добиться этого-использовать модуль py2exe . В этой статье мы быстро рассмотрим основы py2exe и устраним некоторые распространенные проблемы. Чтобы следовать дальше, не требуется никаких продвинутых знаний Python, однако вам придется использовать Windows.

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

Установка py2exe

Чтобы использовать модуль py2exe , нам нужно будет его установить. Давайте сделаем это с помощью pip :

Преобразование скрипта Python в файл .exe

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

Давайте запустим следующие команды в командной строке Windows, чтобы создать каталог ( пример ), переместим код, который мы уже написали, в указанный каталог и, наконец, выполним его:

Это должно вывести:

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

Настройка и настройка

Создайте еще один файл с именем setup.py в той же папке. Здесь мы будем держать детали конфигурации о том, как мы хотим скомпилировать нашу программу. Сейчас мы просто вставим в него пару строк кода:

Если бы мы имели дело с приложением с графическим интерфейсом, мы бы заменили console на windows вот так:

Теперь откройте командную строку от имени администратора и перейдите в каталог, который мы только что упомянули, и запустите setup.py файл:

папка dist

Если все сделано правильно, то это должно привести к созданию подкаталога с именем dist . Внутри него будет несколько разных файлов в зависимости от вашей программы, и один из них должен быть example.exe . Чтобы выполнить его из консоли запустите:

И вы будете встречены нашей латинской цитатой, за которой следует значение 4!:

Или вы можете дважды щелкнуть по нему, и он запустится в консоли.

Если вы хотите объединить все файлы, и bundle_files и compressed , и установить zipfile в None, то вот так:

И повторно запустите команды для создания файла .exe .

Теперь ваши конечные пользователи могут запускать ваши сценарии без каких-либо знаний или предварительных условий, установленных на их локальных компьютерах.

Диагностика

Ошибки при преобразовании файлов .py в файлы .exe встречаются довольно часто, поэтому мы перечислим некоторые распространенные ошибки и решения.

Распространенная проблема с py2exe отсутствует .dll -s.

После запуска .exe , если вы получаете системную ошибку, которая говорит что-то вроде:

Или командная строка говорит:

Решение состоит в том, чтобы найти отсутствующий файл .dll и вставить его в папку dist . Есть два способа сделать это.

  1. Найдите файл на компьютере и скопируйте его. Это будет работать большую часть времени.
  2. Найдите пропавшую . dll онлайн и скачайте ее. Старайтесь не скачивать его с какого-нибудь сомнительного сайта.

Как сгенерировать 32/64-битные исполняемые файлы с помощью py2exe?

Чтобы создать 64-битный исполняемый файл, установите 64-битный Python на свое устройство. То же самое касается и 32-битной версии.

Как использовать py2exe на Linux или Mac

py2exe не поддерживает Linux или Mac, так как он предназначен для создания файлов .exe , которые являются уникальным форматом Windows. Вы можете скачать виртуальную машину Windows как на Mac, так и на Linux, использовать Wine или использовать другой инструмент, например Pyinstaller на Linux или py2app на Mac.

Вывод

Чтобы облегчить запуск проектов Python на устройствах Windows, нам нужно сгенерировать исполняемый файл. Мы можем использовать множество различных инструментов, таких как Pyinstaller , auto-py-to-exe , cx_Freeze и py2exe .

Двоичные файлы могут использовать библиотеки DLL, поэтому обязательно включите их в свой проект.

Программа на Python может запускать другие программы с помощью функции Popen() (от process open) встроенного модуля subprocess. В качестве аргумента функция принимает имя программы, которую нужно запустить:

Возвращаемое значение представляет собой объект Popen , имеющий два полезных метода: poll() и wait() .

Метод poll() возвращает значение None , если в момент его вызова процесс все еще выполняется. Если же процесс к этому моменту завершен, то он возвращает код завершения процесса. Код заверешения служит индикатором того, завершился ли процесс без ошибок (код равен нулю) или же его завершение было вызвано ошибкой (ненулевой код).

Метод wait() ожидает завершения запущенного процесса, прежде чем продолжить выполнение основной программы. Возвращаемым значением метода является целочисленный код завершения процесса.

Сначала мы открываем процесс блокнота, затем проверяем, возвращает ли метод poll() значение None . Это означает, что процесс все еще выполняется. После этого закрываем блокнот и еще раз проверяем, возвращает ли метод poll() значение None . Теперь оба метода, wait() и poll() возвращают нулевое значение, что указывает на завершение программы notepad.exe без ошибок.

Передача аргументов командной строки

Процессам, создаваемым с помощью функции Popen() , можно передвать аргументы командной строки. Для этого функции Popen() надо передать список в качестве единственного аргумента. Первой строкой в этом списке должно быть имя исполняемого файла программы, которую надо запустить. Все последующие строки — это аргументы командной строки, которые будут переданы программе при запуске.

Здесь мы не только запускаем приложение notepad.exe , но и открываем файл readme.txt .

Открытие файлов программ по умолчанию

Двойной клик на иконке файла с расширением .txt позволяет автоматически запустить приложение, ассоциированное с этим расширением. Функция Popen() также может открывать файлы подобным образом:

В каждой операционной системе есть программа, выполняющая те же функции, что и двойной клик на иконке файла. В Windows это программа start , в Ubuntu Linux — программа see .

Установка PyInstaller не отличается от установки любой другой библиотеки Python.

Вот так можно проверить версию PyInstaller.

Я использую PyInstaller версии 4.2.

Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

  1. Считывает файл скрипта.
  2. Анализирует код для выявления всех зависимостей, необходимых для работы. spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
  3. Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
  4. Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
  5. Создает папку DIST в папке со скриптом, если она еще не существует.
  6. Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.

Если использовать параметр команды onedir или -D при генерации исполняемого файла, тогда все будет помещено в одну папку. Это поведение по умолчанию. Если же использовать параметр onefile или -F , то все окажется в одном исполняемом файле.

Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.

Создадим один исполняемый файл. В командной строке введите:

После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

папки, BUILD и DIST, а также файл .spec

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

 исполняемый файл

Вот что произойдет после запуска файла.

Добавление файлов с данными

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

Запустим файл simple1.exe, появится консоль с выводом: Всего фильмов: 7787 .

Добавление файлов с данными и параметр onefile

Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.

После успешного создания файл simple1.exe появится в папке DIST.

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

Добавление файлов с данными и параметр onefile

Дополнительные импорты с помощью Hidden Imports

Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку ImportError: No module named …

Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.

Например, чтобы добавить библиотеку os, нужно написать вот так:

Файл spec

Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.

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

Файл с расширением .spec сохраняется по умолчанию в текущей директории.

Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:

  • Собрать в один бандл с исполняемым файлы данных.
  • Включить другие исполняемые файлы: .dll или .so.
  • С помощью библиотек собрать в один бандл несколько программы.

Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.

Компилируем модель с помощью PyInstaller:

После успешной компиляции запускаем исполняемый файл, который возвращает следующую ошибку.

Исправим ее, обновив файл spec. Одно из решений — создать файл spec.

Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.

Поскольку был использован параметр --onefile , то внутри файла будет только раздел exe.

Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.

Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.

Создаем хуки и добавляем их в hidden imports и раздел данных.

Файлы хуков расширяют возможность PyInstaller обрабатывать такие требования, как необходимость включать дополнительные данные или импортировать динамические библиотеки.

Обычно пакеты Python используют нормальные методы для импорта своих зависимостей, но в отдельных случаях, как например TensorFlow, существует необходимость импорта динамических библиотек. PyInstaller не может найти все библиотеки, или же их может быть слишком много. В таком случае рекомендуется использовать вспомогательный инструмент для импорта из PyInstaller.utils.hooks и собрать все подмодули для библиотеки.

Скомпилируем модель после обновления файла simpleModel.spec.

Скопируем исполняемый файл на рабочий стол и увидим, что теперь он корректно отображает версию TensorFlow.

Вывод:

PyInstaller предлагает несколько вариантов создания простых и сложных исполняемых файлов из Python-скриптов:

Программисты Python должны знать все возможные способы запуска сценариев или кода Python. Это единственный способ проверить, работает ли код так, как мы хотим. Интерпретатор Python отвечает за выполнение скриптов Python.

Что такое интерпретатор в Python?

Здесь мы описываем серию способов запуска скриптов Python.

  • Командная строка операционной системы или терминал.
  • Интерактивный режим Python.
  • IDE или текстовый редактор.
  • Файловый менеджер системы.

Командная строка операционной системы или терминал

Мы можем запустить код Python с помощью командной строки, потому что в оболочке Python после закрытия сеанса мы потеряем весь написанный код. Так что хорошо писать код Python, используя простые текстовые файлы. Текстовый файл должен сохраняться с расширением .py. Посмотрим на следующий пример.

Текстовый файл для написания кода Python

Мы пишем оператор печати Python и сохраняем его как sample.py в рабочем каталоге. Теперь мы запустим этот файл из командной строки.

Откройте командную строку, чтобы запустить скрипт Python. Нам нужно ввести python, а затем имя файла для выполнения файла. Теперь нажмите клавишу ввода, и если в файле нет ошибки, мы увидим следующий результат.

Командная строка

Интерактивный режим Python

Чтобы запустить код Python, мы можем использовать интерактивный сеанс Python. Для запуска интерактивного сеанса Python, просто откройте командную строку или терминал в меню «Пуск», затем введите python и нажмите клавишу ввода.

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

Как запустить Python в интерактивном режиме

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

Ниже приведены варианты выхода из интерактивного режима.

  • Введите встроенные функции quit() или exit().
  • Введите комбинацию клавиш Enter ctrl + Z, чтобы завершить текущий сеанс интерактивной оболочки Python.

IDE или текстовый редактор

Создайте новый проект, а затем создайте новый файл Python с расширением .py.

Pycharm для запуска Python

Теперь нажмите зеленую кнопку, и результат отобразится следующим образом.

Код, написанный на Python, позволяет решать много прикладных задач: автоматизация отчетности, алгоритмы поиска, анализа и пр. Однако не у всех потенциальных пользователей может быть установлен сам Python и тем более не все являются экспертами в программировании. Выручить может программа, которая будет отрабатывать написанный вами код без установки библиотек Python и необходимой оболочки. Одним из таких решений может быть компиляция кода Python а файл exe. Дальше простым языком мы постараемся объяснить, как его скомпилировать и какие есть нюансы.

Для начала Вам необходимо скачать компилятор pyinstaller, для чего вам понадобится команда:

Далее ваш код в формате. py необходимо разместить в системную папку Scripts.

Путь к этой папке обычно выглядит так:

Если Вы инсталлировали Python в другое место, соответственно ищите папку там.

Далее приступаем собственно к компиляции, для чего: выделяем путь к папке Scripts в окне браузера, вместо него набираем команду cmd и жмем Enter.

У Вас сразу будет указан верный путь к файлу:

В продолжение строки с директорией файла необходимо набрать команду: pyinstaller Report.py —onefile

Где Report.py – это имя вашего файла, — onefile – означает, что программа будет скомпилирована в единый файл.

Нажимаем Enter. Pyinstaller приступает к сборке программы.

Готовый файл находим в папке dist.

Данный метод компиляции не оптимизирует включение только необходимых библиотек, поэтому нужно быть готовым к тому, что его размер будет занимать достаточно объема. В нашем случае код из 120 строк с библиотекой Pandas и Datetime собран в программу весом почти 220 Mb. Теперь данным файлом может пользоваться любой сотрудник.

Хотелось бы обратить внимание на следующие нюансы: если вы компилируете файл на 64 битной OS Windows 10, то он не запустится на 32 битной OS Windows 7.

Если же файл будет скомпилирован на 32 битной OS Windows 7, то его можно будет запустить как на 32 битных, так и на 64 битных OS Windows 7/10.

Читайте также: