Рубрики
Без рубрики

Создание исполняемых файлов из скриптов Python с помощью py2exe

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

Автор оригинала: Kristina Popovic.

Вступление

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

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

Примеры, подобные этому, показывают, что существует веская причина для преобразования .py программ в эквивалентные .exe программы в Windows. .exe расшифровывается как “Исполняемый файл” , который также известен как Двоичный .

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

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

Установка py2exe

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

$ pip install py2exe

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

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

import math
print("Hannibal ante Portas")
print(factorial(4))

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

$ mkdir exampDir
$ move example.py exampDir
$ cd exampDir
$ py example.py

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

Hannibal ante Portas
24

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

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

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

from distutils.core import setup # Need this to handle modules
import py2exe 
import math # We have to import all modules used in our program

setup(console=['example.py']) # Calls setup function to indicate that we're dealing with a single console application

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

setup(windows=['example.py'])

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

$ cd exampDir
$ python setup.py py2exe

running py2exe
*** searching for required modules ***
*** parsing results ***
...

папка dist

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

$ example

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

Hannibal ante Portas
24

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

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

from distutils.core import setup
import py2exe

setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
    console = [{'script': "example.py"}],
    zipfile = None,
)

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

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

Диагностика

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

Как исправить Отсутствующие DLL-ы после использования py2exe

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

DLL расшифровывается как “динамически подключаемая библиотека”, и они существуют не только для того, чтобы делать ошибки, обещаю. Библиотеки DLL содержат код, данные и ресурсы, которые могут понадобиться нашей программе во время выполнения.

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

The program can't start because something.dll is missing from your computer. Try reinstalling the program to fix this problem. 

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

ImportError: (DLL load failed: The specified module could not be found.)

Решение состоит в том, чтобы найти отсутствующий файл .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, поэтому обязательно включите их в свой проект.