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