Автор оригинала: 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 . Есть два способа сделать это.
- Найдите файл на компьютере и скопируйте его. Это будет работать большую часть времени.
- Найдите пропавшую
. 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, поэтому обязательно включите их в свой проект.