- Немного про py2exe
- Установка
- Конвертация
- Сложности
- Размер
- Вывод
- Rukovodstvo
- статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
- Создание исполняемых файлов из скриптов Python с помощью py2exe
- Введение Для выполнения сценариев Python требуется множество предварительных условий, таких как наличие установленного Python, наличие множества установленных модулей, использование командной строки и т. Д., В то время как выполнение файла .exe очень просто. Если вы хотите создать простое приложение и распространить его среди множества пользователей, написать его в виде короткого скрипта Python несложно, но предполагается, что пользователи знают, как запускать скрипт, и Python уже установлен на их машине. Примеры, подобные этому, показывают, что там
- Вступление
- Установка py2exe
- Преобразование скрипта Python в .exe
- Установка и конфигурация
- папка dist
- Поиск проблемы
- Как исправить отсутствующие библиотеки DLL после использования py2exe
- Как сгенерировать 32/64-битные исполняемые файлы с помощью py2exe?
- Как использовать py2exe в Linux или Mac
- Заключение
- Как из файла Python3 создать .exe на Windows
- Способ 2
Немного про py2exe
Есть такое приложение. Называется py2exe. Оно позволяет упаковать, сконвертировать программу на python в exe файл (ну, точнее, exe и еще кучку других). Зачем оно все надо? Ну, далеко не у всех пользователей windows установлен интерпретатор python с нужными библиотеками. А вот упакованная программа в идеале должна запуститься на любой windows-машине.
Установка
К сожалению, py2exe не поддерживает третью версию питона.
Скачать py2exe можно на SourceForge.
Если у вас стоит python (а он у вас наверняка стоит), проблем с установкой возникнуть не должно. Ставится в директорию python.
Конвертация
Теперь начинается самое интересное. В директории, где лежит Ваша программа на python, надо создать файл setup.py со следующим содержанием
Где main.py имя Вашего скрипта.
Далее запускаем упаковку командой:
Смотрим, что у нас получилось. Две папки.
build — служебная, можно сразу снести.
dist — собственно, в ней и лежит наша программа.
- main.exe — программа
- pythonXX.dll — интерпретатор python’a
- library.zip — архив со скомпилированными исходниками (всего, кроме собственно программы, как я понимаю)
- .pyd — модули python, которые импортирует программа
- .dll — библиотеки, оказавшиеся необходимыми
- и еще файлы по мелочи, ниже будет сказано еще
Сложности
Скорее всего возникнут какие-то проблемы.
Например, пути к файлам. Не следует использовать относительные пути. Они ведут неведомо куда. Лучше использовать абсолютные.
Как его узнать? в интернете есть решение, функция module_path.
- import os, sys
- def module_path ():
- if hasattr(sys, «frozen» ):
- return os.path.dirname(
- unicode(sys.executable, sys.getfilesystemencoding( ))
- )
- return os.path.dirname(unicode(__file__, sys.getfilesystemencoding( )))
Или приложение наотрез откажется запускаться (возможно, не у Вас, а у кого-то еще). Из-за отсутствие библиотек Visual Studio.
В качестве решения проблемы можно установить их на компьютер (но это же не наш метод) или кинуть dll и файл манифеста в папку с программой.
msvcr90.dll и Microsoft.VC90.CRT.manifest (не знаю как это лицензируется и выкладывать не буду)
Где их взять? Для меня самым простым было переустановить python (все остальное осталось на месте) в режиме «только для меня». И искомые файлы оказались в папке с python.
Целью топика не являлось раскрыть всех особенностей py2exe. Здесь находится туториал, а тут некоторые советы и трюки.
Размер
В силу некоторых особенностей, приложение может получиться ужасающего размера. Но с этим можно и нужно бороться. Идеи подсказал kAIST (ну, кроме upx’а =р)
- Самое действенное. Сжать библиотеки upx’ом. Консольное приложение. Работает элементарно. На вход передается файл, оно его сжимает. Для моей игры реверси размер уменьшился в ~3 раза.
- Удалить unicodedata.pyd, bz2.pyd, select.pyd, w9xpopen.exe. Веса немного, но, как минимум, в проекте станет меньше файлов
- Если в setup.py указать опцию optimize:2, то модули будут компилироваться в .pyo (python optimized code), а не в .pyc (python compiler script). Это не дает большого эффекта, но кто знает, может Вам повезет)
- И наконец, можно подчистить library.zip от неиспользованных модулей и кодировок. Только аккуратно.
Вывод
Ну вот, кажется, и все. Мы добились, чего хотели. Да, приложение получилось солидного размера (это вам не C++, например), зато на нашем любимом Python:)
Rukovodstvo
статьи и идеи для разработчиков программного обеспечения и веб-разработчиков.
Создание исполняемых файлов из скриптов Python с помощью py2exe
Введение Для выполнения сценариев Python требуется множество предварительных условий, таких как наличие установленного Python, наличие множества установленных модулей, использование командной строки и т. Д., В то время как выполнение файла .exe очень просто. Если вы хотите создать простое приложение и распространить его среди множества пользователей, написать его в виде короткого скрипта Python несложно, но предполагается, что пользователи знают, как запускать скрипт, и Python уже установлен на их машине. Примеры, подобные этому, показывают, что там
Вступление
Выполнение скриптов Python требует множества предварительных условий, таких как наличие установленного Python, наличие множества установленных модулей, использование командной строки и т. Д., В то время как выполнение .exe очень просто.
Если вы хотите создать простое приложение и распространить его среди множества пользователей, написать его в виде короткого скрипта Python несложно, но предполагается, что пользователи знают, как запускать скрипт, и Python уже установлен на их машине.
Примеры, подобные этому, показывают, что есть веская причина для преобразования .py в эквивалентные .exe в Windows. .exe означает «Исполняемый файл» , который также известен как двоичный файл.
Самый популярный способ добиться этого — использовать модуль py2exe В этой статье мы быстро рассмотрим основы py2exe и устраним некоторые распространенные проблемы. Чтобы продолжить, не требуется никаких дополнительных знаний Python, однако вам придется использовать Windows.
Преобразование кода интерпретируемого языка в исполняемый файл — это практика, обычно называемая замораживанием .
Установка py2exe
Чтобы использовать py2exe , нам нужно его установить. Сделаем это с помощью pip :
Преобразование скрипта Python в .exe
Во-первых, давайте напишем программу, которая будет выводить текст на консоль:
import math print("Hannibal ante Portas") print(factorial(4))
Давайте запустим следующие команды в командной строке Windows, чтобы создать каталог ( exampDir ), переместить уже написанный код в указанный каталог и, наконец, выполнить его:
$ mkdir exampDir $ move example.py exampDir $ cd exampDir $ py example.py
Всегда проверяйте скрипты, прежде чем превращать их в исполняемые файлы, чтобы убедиться, что если есть ошибка, она не вызвана исходным кодом.
Установка и конфигурация
Создайте в той же папке еще один файл с именем 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.py
$ cd exampDir $ python setup.py py2exe running py2exe *** searching for required modules *** *** parsing results *** .
папка dist
Если все сделано правильно, должен появиться подкаталог с именем dist . Внутри него будет несколько разных файлов, в зависимости от вашей программы, и одним из них должен быть example.exe . Чтобы выполнить его из консоли, запустите:
И вас встретит наша латинская цитата, за которой следует значение 4 !:
Или вы можете дважды щелкнуть по нему, и он запустится в консоли.
Если вы хотите объединить все файлы, добавьте bundle_files и compressed и установите для zipfile значение None следующим образом:
from distutils.core import setup import py2exe setup( options = >, console = [], 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, поэтому обязательно включите их в свой проект.
Licensed under CC BY-NC-SA 4.0
Как из файла Python3 создать .exe на Windows
Мы рассмотрим создание .exe с помощью библиотеки модуля py2exe. Для этого необходим Python 3.4 и ниже.
Если у вас установлена более высокая версия Python, попробуйте использовать Способ 2 (ниже)
В этом примере мы рассмотрим создание .exe на примере Python3.4.
Прежде всего на нужно создать виртуальное окружение для Python3.4. В этом примере мы назовем myenv, Вы можете выбрать любое другое имя, но не забывайте сделать соответствующие изменения.
На терминале наберите следующие команды:
>py -3.4 -m venv myenv > myenv\Scripts\activate.bat
В командной строке появится префикс myenv, а это значит, что виртуальное окружение с именем myenv загружено. Все команды Python теперь будет использовать новое виртуальное окружение.
Теперь давайте установим py2exe (https://pypi.python.org/pypi/py2exe~~HEAD=dobj) в нашем виртуальном окружении:
>pip install py2exe
И, наконец, чтобы создать единый EXE-файл, в нашем виртуальном окружении выполняем команду:
>python -m py2exe.build_exe hello.py -c --bundle-files 0
(замените hello.py на имя вашего скрипта. Если скрипт находится в другой папке, то нужно использовать полный путь к вашему сценарию, например, C:\Projects\Python\ hello.py). Это создаст папку DIST, которая содержит исполняемый файл. Для быстрого доступа к нему, наберите в терминале:
Вы увидите путь к папке, где находится EXE-файл.
Примечание: При выполнении, откроется окно и исчезают так же быстро, как и появилось.
Это происходит потому, что операционная система автоматически закрывает терминал, в котором консольная программа закончена.
Для того, чтобы изменить эту ситуацию, можно добавить строчку
> input (" Нажмите для выхода . ")
в конце файла Python. Интерпретатор будет ждать ввода пользователя, а окно будет оставаться открытым, пока пользователь не нажимает клавишу ввода.
Вы можете подробно изучить использование py2exe в документации на странице модуля: https://pypi.python.org/pypi/py2exe
Выход из виртуального окружения производится командой
Способ 2
Через командную строку Windows устанавливаем pyinstaller:
В командной строке переходим в папку, где находится файл
Затем в командной строке набираем команду
pyinstaller --onefile example.py
Вместо exapmle.py используем имя файла, из которого нужно создать exe файл.
Через пару минут все готово! Скоркее всего, exe файл будет находится во созданной подпапке dist