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

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

Вступление

Выполнение скриптов 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, чтобы создать каталог ( exampDir ), переместить уже написанный код в указанный каталог и, наконец, выполнить его:

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

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus