Python компиляция в exe в windows

Код, написанный на Python, позволяет решать много прикладных задач: автоматизация отчетности, алгоритмы поиска, анализа и пр. Однако не у всех потенциальных пользователей может быть установлен сам Python и тем более не все являются экспертами в программировании. Выручить может программа, которая будет отрабатывать написанный вами код без…

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

Для начала Вам необходимо скачать компилятор pyinstaller, для чего вам понадобится команда:

pip install pyinstaller

Далее ваш код в формате. py необходимо разместить в системную папку Scripts.

Путь к этой папке обычно выглядит так:

Если Вы инсталлировали Python в другое место, соответственно ищите папку там.

Далее приступаем собственно к компиляции, для чего: выделяем путь к папке Scripts в окне браузера, вместо него набираем команду cmd и жмем Enter.

У Вас сразу будет указан верный путь к файлу:

В продолжение строки с директорией файла необходимо набрать команду: pyinstaller Report.py —onefile

Где Report.py – это имя вашего файла, — onefile – означает, что программа будет скомпилирована в единый файл.

Нажимаем Enter. Pyinstaller приступает к сборке программы.

В зависимости от размера кода и количества, используемых в нем библиотек, время сборки программы может занять 5-15 мин. Успешностью завершения будет являться следующее сообщение:

Готовый файл находим в папке dist.

Данный метод компиляции не оптимизирует включение только необходимых библиотек, поэтому нужно быть готовым к тому, что его размер будет занимать достаточно объема. В нашем случае код из 120 строк с библиотекой Pandas и Datetime собран в программу весом почти 220 Mb. Теперь данным файлом может пользоваться любой сотрудник.

Хотелось бы обратить внимание на следующие нюансы: если вы компилируете файл на 64 битной OS Windows 10, то он не запустится на 32 битной OS Windows 7.

Если же файл будет скомпилирован на 32 битной OS Windows 7, то его можно будет запустить как на 32 битных, так и на 64 битных OS Windows 7/10.

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

Изначально Python создает приложение в формате .py. Это не совсем удобно, особенно если пользователь имеет дело в Windows. Для комфортной проверки и формирования утилиты нужно скомпилировать py в exe. Добиться соответствующего результата удается несколькими способами. О них и зайдет речь далее. Предложенные сведения пригодятся всем, кто планирует писать программы на Питоне.

О формате executable

Exe – это формат исполняемого типа. Он знаком всем, кто хотя бы раз запускал MS Windows. Представляет собой набор инструкций, который заставляет компьютер выполнить ту или иную задачу. Не важно, на каком языке написана программа – Питон, C++ или Java. Если проект скомпилирован в exe, он будет успешно прочтен устройством.

Перед тем как думать, как скомпилировать python в exe файл, нужно понимать – создание подобного документа нацелено «на машину». Экзешник считывается устройством, базируется на машинном коде.

Данный вариант применяется в различных операционных системах:

  • Windows;
  • DOS;
  • Symbian;
  • OS/2.

Может предусматривать в своем составе метаданные, включая цифровые подписи. Для обычного пользователя исполняемый файл – это готовое к запуску приложение, которое остается установить или активировать.

Способы преобразования проекта

Python скрипт в exe перевести не слишком сложно. Сборка может проходить как автоматически, так и при помощи online/offline приложений. Все зависит от личных предпочтений разработчика.

Создать исполняемый файл на Питоне (экзешник) – дело нескольких минут. Далее будут представлены популярные и известные методы, позволяющие преобразовывать Python Script в интересующий формат.

Auto PY

Первый вариант – один из самых простых. Он позволит сделать исполняемый файл в несколько кликов. Речь идет об использовании приложения, которое носит название «компилятор». Это – Auto PY to EXE.

Перевод проекта через соответствующее ПО с Python в экзешник позволит запускать утилиты на других машинах. Для этого не нужно предварительно устанавливать Питон.

Инициализация

Чтобы сделать исполняемый файл соответствующим способом, нужно провести инициализацию Auto PY to EXE. Первый вариант – установка «в командной строке». Для этого требуется ввести команду: pip install auto-py-to-exe.

Второй вариант – через GitHub. Для этого нужно:

  1. Клонировать репозиторий .
  2. Перейти в папку с соответствующим компилятором .
  3. Запустить файл setup.py.
  4. Проверить актуальную версию.
  5. Открыть прогу (Python Scripts), с которой планируется дальнейшая работа. Процесс осуществляется в терминале .

Установка завершена. Конвертер готов к непосредственному использованию. Теперь можно сделать исполняемый файл из Python в несколько кликов.

Преобразование

Создание экзешника  (executables) из Питоновского project проводится в несколько этапов:

  1. Добавляем в конвертор местоположение файла. На этом этапе прописывается путь, где лежит интересующий пользователя скрипт. Нужно перейти к местоположению документа и добавить соответствующий «адрес».
  2. Выбор директории. One Directory создаст папку со всеми необходимыми документами и одним исполняемым, когда будет обрабатывать скрипт.
  3. Определить тип приложения. На данном этапе предлагается создать документ или консольного типа, или оконного. Windows Based – вариант, который скроет console. Компиляция типа Console Based используется, если мы преобразуем script, предусматривающий работу с консолью. Window Based – это вариант для GUI.
  4. Компиляция. Здесь компилируем project. На экране появятся дополнительные опции. Их выбор зависит от предпочтений разработчика. Чтобы начать процедуру, необходимо нажать на кнопку Convert.

Completed Project через Auto PY to EXE разместится в отдельной папке. По умолчанию – это место, откуда запускался converter. В папке множество документов, но всего один – с интересующим форматом. При двойном нажатии на него будет запускаться программа на Python.

Py Installer

Сборка exe file может проводиться через компилятор Pyinstaller. Установка – через pip. После этого рекомендуется проверить build компилятора – лишь после делать все необходимые манипуляции. Команда pip install PyInstaller поможет активировать «утилиту». Она включена в стандартный пакет Python. Сохранить py file to exe будет проще простого.

Как собрать проект

Конвертер позволяет сохранить весь проект в единый Python-файл. Создание (сборка) происходит так:

  1. Считывается скрипт.
  2. Активируется код для выявления зависимостей.
  3. Создается файл spec. Он включает в себя название скрипта, библиотеку-зависимости, иные документы.
  4. Converter собирает копии библиотек и файлов вместе с активным интерпретатором Python.
  5. Для того, чтобы перевести код (script) в file исполняемого типа, создается папка Build. В ней фиксируются логи и рабочие документы.
  6. Создается папка DIST. Она расположена в папке со скриптом. Этот этап пропускается при наличии соответствующего компонента.
  7. Сохраняем через converter необходимые документы вместе со скриптом в одну папку или исполняемый файл.

Если задействовать onedir или -D при генерации, code и его files разместятся в одной папке. Это – настройки по умолчанию. Применение onefile или -F – это создание сохранений в едином документе.

Пример

Convert Python код в exe – не так трудно. Все installing и compile code отнимают некоторое время, но требуют минимального вмешательства. Вот – пример того, как перевести (create build) исходный код в интересующую форму:

  1. Дан документ simple.py .
  2. Ввести в командной строке pyinstaller –onefile simple.py.
  3. Дождаться завершения процесса.

Это – compile (возможность сохранить) Python projects code on исполняемый документ. Установка завершится – появятся папки built и dist. А еще – новый spec-файл.

Py2exe

Есть еще поход – convert (compile) coding через Py2exe. Подойдет для Питона 3.4 и версий ниже. Сначала creates визуальное окружение, затем – сохраняем picture и иные компоненты скрипта в единое целое. Приведенный пример – проект с именем myenv.

Для converting python auto py to документ exe, нужно:

  1. Creating визуальное окружение .
  2. Installed py2 exe .
  3. Completed process by creating «windowed» file. В виртуальном окружении выполняется команда .

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

В сети

Задумываясь, как сделать exe из Python, можно created building при помощи online converts. Это специализированные компиляторы, работающие в интернете. Online сервисы не требуют install, функционируют так:

  1. На экране появляется главное окно — main line.
  2. В окне compiler нужно ввести скрипт.
  3. Нажать на кнопку Installation. Иногда – Compiled или Run.
  4. Online сервис compiles файл интересующего формата. Иногда его можно выбрать. При ошибке обработки операции на экране появится надпись «failed».

Остается скачать compiling документацию и (или) его проект с полноценной папкой. Можно запускать документ.

А вот – туториал, в котором наглядно показано, как из файла py сделать exe. Лучше разобраться в теме помогут специализированные онлайн-курсы.

Обычно код на Питон запускают двумя способами: через терминал или через текстовый редактор / IDE.

При этом стоит отметить, что файлик Python — это всего лишь скрипт, который сохранён в расширении .py. Да, это очевидно, но в этом и кроется проблема: иногда нужно скрыть исходный код, а поделиться программкой (в виде альфа-версии, например) очень хочется.

Одно из решений, которое закрывают боль с исходным кодом — это конвертация файла Python в исполняемый exe-файлик.

В этой статье мы научимся создавать «экзешники» при помощи двух библиотек: Pyinstaller and auto-py-to-exe.

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

  1. Код могут украсть. Об этом мы уже говорили выше. Куда проще достать исходный код непосредственно из py-файла, чем из скомпилированного приложение. Py-файл достаточно просто открыть!
  2. Хочется поделиться кодом с другими юзерами. Дело не только в том, что ваш код могут украсть. Зачастую код содержит зависимости, которыми должен владеть другой юзер перед запуском вашего Python-кода. Но что, если он вообще ничего не смыслит в программировании? Не заставишь ведь его сперва выучить программирование, чтобы оценить ваше новое суперприложение. Проще создать исполняемый файл.
  3. Исполняемый файл можно запускать автоматически, по расписанию. Этот пункт актуален, если вы решили написать утилиту для вашего ПК, и эта утилита должна запускаться либо в определенное время, либо вместе с запуском ОС.

Конвертация кода Python в файл .exe

Для начала создадим скрипт на Python. В качестве примера мы используем открытый код бронирования жилья AitBnb в Нью-Йорке. Если у вас уже есть готовый код, можете сразу использовать его.

import pandas as pd
from pandas.api.types import CategoricalDtype

def perform_validation(filename:str):
    """
    A function to validate inputs for NYC Airbnb Open data.
    """
    path_to_data = "../.."
    data = pd.read_csv(f"{path_to_data}{filename}")

    # Convert neighbourhood_group to type category
    neighbourhood_group_to_cat = CategoricalDtype(
        categories=["Manhattan", "Brooklyn", "Queens", "Bronx", "Staten Island"],
        ordered=False
        )
 
    data["neighbourhood_group"] = data["neighbourhood_group"].astype(neighbourhood_group_to_cat)

    # Convert room_type to type category
    room_type_to_cat = CategoricalDtype(
        categories=["Entire home/apt", "Private room", "Shared room"],
        ordered=False
    )

    data["room_type"] = data["room_type"].astype(room_type_to_cat)

    # Convert last_review to datetime
    data["last_review"] = pd.to_datetime(data["last_review"])

    # Minimum nights a person can stay is one night
    assert data["minimum_nights"].min() >= 1

    # Minimum number of reviews is 0
    assert data["number_of_reviews"].min() >= 0
 
    # Minimum number of reviews per month
    assert data["reviews_per_month"].min() >= 0.00

    # Minimum amount of listings per host
    assert data["calculated_host_listings_count"].min() >= 1

    # Number of days when listing is available for books
    # Could be 0 if tennant has long term booking
    assert data["availability_365"].min() >= 0

    # Save validated data
    data.to_csv("validated_ab_nyc_2019.csv", index=False)

if __name__ == "__main__":
    # User inputs filename
    filename = input("Enter filename: ")
 
    # Ensure it's a string
    if not filename.isalpha():
        filename = str(filename)
 
    # Automated validation
    perform_validation(filename)

Вы не забыли скачать библиотеки по ссылке по введении? Сделайте это сейчас.

Вот структура файлов на GitHub:

# Directory structure
|   AB_NYC_2019.csv
|  
+---auto_py_to_exe
|   |   requirements.txt
|   |   validation.py         
+---pyinstaller
    |   requirements.txt
    |   validation.py

Каждая из директорий должна обладать своей виртуальной средой. Убедитесь, что среды развёрнуты и в директории pyinstaller, и в auto-py-to-exe.

Сохраните ваш код и скопируйте его в обе директории.

Что делать в Pyinstaller

Ещё раз убедитесь, что виртуальная среда развёрнута. Да, мы настаиваем. Проверьте, установлены ли все зависимости между библиотеками и кодом.

Всё в порядке? Запускайте команду:

pyinstaller --onefile validation.py

Процесс должен запуститься, и в конце консоль сообщит: «Completed successfully». Значит, всё прошло успешно. 🙂

Успешный процесс компиляции в Pyinstaller // DataCamp

В папке с бибилотекой и кодом должны появиться две новые директории под названиями build и dist. В папке dist вы найдёте заветный exe-файл. Запустите его и проверьте работу приложения.

Что делать в Auto-py-to-exe

Также скиньте файлик с кодом в папку с библиотекой и проверьте зависимости между кодом и библиотекой.

Запустите команду:

auto-py-to-exe

Команда запустит графический интерфейс.

Запускаем компилятор Auto-py-to-exe // DataCamp

  1. В строчке «Script Location» нажмите «Browse» и выберите py-скрипт.
  2. В строчке «Onefile» выберите, скомпилируется код в единый файл или в папку. В папке будет содержаться exe-файл и все зависимости кода.
  3. В строчке «Console Window» выберите настройки отображения exe-приложения, когда оно будет запущено. Если выбрать «Console Based», запустится и программа, и консоль, в которой будут показаны процессы. Опция «Window Based» скрывает консоль.
  4. Нажмите кнопку «Convert .py to .exe». Готово!

Запускаем exe-файл

В обоих случаях, после компиляции и запуска exe-файла, тот запустит консоль и попросит вас ввести имя файла. Придумайте его и укажите расширение, в котором всё должно работать. К примеру, Tproger-is-the-best-it-media-in-the-world.csv. Тогда консоль закроется, а в папке появится заветный файлик с расширением .csv.

И всё — вы великолепны!

Источник: DataCamp

0

15.04.201912:0215.04.2019 12:02:03

2019-04-15.png
Я перепробовал кучу разных утилит для компиляции python скрипта в .exe и везде были проблемы или не собирался файл, лог ошибками сыпал, файл собирался но не запускался и т.д.

И помог мне самый простой и легкий способ, расскажу о нем в трех шагах:

1. Устанавливаем пакет для сборки скрипта в exe

2. Переходим в папку со скриптом

cd c:Свой_путь_до_скрипта

3. Запускаем компиляцию

pyinstaller --onefile main.py 

Вместо main.py подставляем свое имя скрипта если это отличается.
После сборки в папке проекта рядом с вашим скриптом появится папка dist в которой и будет находится exe файл.
Этот способ работает с установленными сторонними библиотеками python.

Установка PyInstaller не отличается от установки любой другой библиотеки Python.

pip install PyInstaller

Вот так можно проверить версию PyInstaller.

pyinstaller --version

Я использую PyInstaller версии 4.2.

Создание exe файла с помощью PyInstaller

PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:

  1. Считывает файл скрипта.
  2. Анализирует код для выявления всех зависимостей, необходимых для работы.
  3. Создает файл spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
  4. Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
  5. Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
  6. Создает папку DIST в папке со скриптом, если она еще не существует.
  7. Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.

Если использовать параметр команды onedir или -D при генерации исполняемого файла, тогда все будет помещено в одну папку. Это поведение по умолчанию. Если же использовать параметр onefile или -F, то все окажется в одном исполняемом файле.

Возьмем в качестве примера простейший скрипт на Python c названием simple.py, который содержит такой код.

import time
name = input("Введите ваше имя ")
print("Ваше имя ", name)
time.sleep(5)

Создадим один исполняемый файл. В командной строке введите:

pyinstaller --onefile simple.py

После завершения установки будет две папки, BUILD и DIST, а также новый файл с расширением .spec. Spec-файл будет называться так же, как и файл скрипта.

папки, BUILD и DIST, а также файл .spec

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

 исполняемый файл

Вот что произойдет после запуска файла.

Добавление файлов с данными, которые будут использоваться exe-файлом

Есть CSV-файл netflix_titles.csv, и Python-script, который считывает количество записей в нем. Теперь нужно добавить этот файл в бандл с исполняемым файлом. Файл Python-скрипта назовем просто simple1.py.

import time
# pip install pandas
import pandas as pd


def count_records():
    data = pd.read_csv('netflix_titles.csv')
    print("Всего фильмов:", data.shape[0])


if __name__ == "__main__":
    count_records()
    time.sleep(5)

Создадим исполняемый файл с данными в папке.

pyinstaller --add-data "netflix_titles.csv;." simple1.py

Параметр --add-data позволяет добавить файлы с данными, которые нужно сохранить в одном бандле с исполняемым файлом. Этот параметр можно применить много раз.

Синтаксис add-data:

  • add-data — Windows.
  • add-data — Linux.

Можно увидеть, что файл теперь добавляется в папку DIST вместе с исполняемым файлом.

Добавление файлов с данными

Также, открыв spec-файл, можно увидеть раздел datas, в котором указывается, что файл netflix_titles.csv копируется в текущую директорию.

...
a = Analysis(['simple1.py'],
             pathex=['E:\myProject\pyinstaller-tutorial'],
             binaries=[],
             datas=[('netflix_titles.csv', '.')],
...

Запустим файл simple1.exe, появится консоль с выводом: Всего фильмов: 7787.

Добавление файлов с данными и параметр onefile

Если задать параметр --onefile, то PyInstaller распаковывает все файлы в папку TEMP, выполняет скрипт и удаляет TEMP. Если вместе с add-data указать onefile, то нужно считать данные из папки. Путь папки меняется и похож на «_MEIxxxxxx-folder».

import time
import sys
import os
# pip install pandas
import pandas as pd


def count_records():
    os.chdir(sys._MEIPASS)
    data = pd.read_csv('netflix_titles.csv')
    print("Всего фильмов:", data.shape[0])


if __name__ == "__main__":
    count_records()
    time.sleep(5)

Скрипт обновлен для чтения папки TEMP и файлов с данными. Создадим exe-файл с помощью onefile и add-data.

pyinstaller --onefile --add-data "netflix_titles.csv;." simple1.py

После успешного создания файл simple1.exe появится в папке DIST.

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

Добавление файлов с данными и параметр onefile

Дополнительные импорты с помощью Hidden Imports

Исполняемому файлу требуются все импорты, которые нужны Python-скрипту. Иногда PyInstaller может пропустить динамические импорты или импорты второго уровня, возвращая ошибку ImportError: No module named

Для решения этой ошибки нужно передать название недостающей библиотеки в hidden-import.

Например, чтобы добавить библиотеку os, нужно написать вот так:

pyinstaller --onefile --add-data "netflix_titles.csv;." — hidden-import "os" simple1.py

Файл spec

Файл spec — это первый файл, который PyInstaller создает, чтобы закодировать содержимое скрипта Python вместе с параметрами, переданными при запуске.

PyInstaller считывает содержимое файла для создания исполняемого файла, определяя все, что может понадобиться для него.

Файл с расширением .spec сохраняется по умолчанию в текущей директории.

Если у вас есть какое-либо из нижеперечисленных требований, то вы можете изменить файл спецификации:

  • Собрать в один бандл с исполняемым файлы данных.
  • Включить другие исполняемые файлы: .dll или .so.
  • С помощью библиотек собрать в один бандл несколько программы.

Например, есть скрипт simpleModel.py, который использует TensorFlow и выводит номер версии этой библиотеки.

import time
import tensorflow as tf


def view_model():
    print(tf.__version__)


if __name__ == "__main__" :
    model = view_model()
    time.sleep(5)

Компилируем модель с помощью PyInstaller:

pyinstaller -F simpleModel.py

После успешной компиляции запускаем исполняемый файл, который возвращает следующую ошибку.

...
File "site-packagestensorflow_corepython_init_.py", line 49, in ImportError: cannot import name 'pywrap_tensorflow' from 'tensorflow_core.python' 

Исправим ее, обновив файл spec. Одно из решений — создать файл spec.

$ pyi-makespec simpleModel.py -F
wrote E:pyinstaller-tutorialsimpleModel.spec
now run pyinstaller.py to build the executable

Команда pyi-makespec создает spec-файл по умолчанию, содержащий все параметры, которые можно указать в командной строке. Файл simpleModel.spec создается в текущей директории.

Поскольку был использован параметр --onefile, то внутри файла будет только раздел exe.

...
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          [],
          name='simpleModel',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True )

Если использовать параметр по умолчанию или onedir, то вместе с exe-разделом будет также и раздел collect.

Можно открыть simpleModel.spec и добавить следующий текст для создания хуков.

# -*- mode: python ; coding: utf-8 -*-

block_cipher = None
import os
spec_root = os.path.realpath(SPECPATH)
options = []
from PyInstaller.utils.hooks import collect_submodules, collect_data_files
tf_hidden_imports = collect_submodules('tensorflow_core')
tf_datas = collect_data_files('tensorflow_core', subdir=None, include_py_files=True)

a = Analysis(['simpleModel.py'],
             pathex=['E:\myProject\pyinstaller-tutorial'],
             binaries=[],
             datas=tf_datas + [],
             hiddenimports=tf_hidden_imports + [],
             hookspath=[],
...

Создаем хуки и добавляем их в hidden imports и раздел данных.

Хуки

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

Обычно пакеты Python используют нормальные методы для импорта своих зависимостей, но в отдельных случаях, как например TensorFlow, существует необходимость импорта динамических библиотек. PyInstaller не может найти все библиотеки, или же их может быть слишком много. В таком случае рекомендуется использовать вспомогательный инструмент для импорта из PyInstaller.utils.hooks и собрать все подмодули для библиотеки.

Скомпилируем модель после обновления файла simpleModel.spec.

pyinstaller simpleModel.spec

Скопируем исполняемый файл на рабочий стол и увидим, что теперь он корректно отображает версию TensorFlow.

Вывод:

PyInstaller предлагает несколько вариантов создания простых и сложных исполняемых файлов из Python-скриптов:

  • Исполняемый файл может собрать в один бандл все требуемые данные с помощью параметра --add-data.
  • Исполняемый файл и зависимые данные с библиотеками можно собрать в один файл или папку с помощью --onefile или --onedir соответственно.
  • Динамические импорты и библиотеки второго уровня можно включить с помощью hidden-imports.
  • Файл spec позволяет создать исполняемый файл для обработки скрытых импортов и других файлов данных с помощью хуков.

The best and easiest way is auto-py-to-exe for sure, and I have given all the steps and red flags below which will take you just 5 mins to get a final .exe file as you don’t have to learn anything to use it.

1.) It may not work for python 3.9 on some devices I guess.

2.) While installing python, if you had selected ‘add python 3.x to path’, open command prompt from start menu and you will have to type pip install auto-py-to-exe to install it. You will have to press enter on command prompt to get the result of the line that you are typing.

3.) Once it is installed, on command prompt itself, you can simply type just auto-py-to-exe to open it. It will open a new window. It may take up to a minute the first time. Also, closing command prompt will close auto-py-to-exe also so don’t close it till you have your .exe file ready.

4.) There will be buttons for everything you need to make a .exe file and the screenshot of it is shared below. Also, for the icon, you need a .ico file instead of an image so to convert it, you can use https://convertio.co/

5.) If your script uses external files, you can add them through auto-py-to-exe and in the script, you will have to do some changes to their path. First, you have to write import sys if not written already, second, you have to make a variable for eg, location=getattr(sys,"_MEIPASS",".")+"/", third, the location of example.png would be location+"/example.png" if it is not in any folder.

6.) If it is showing any error, it may probably be because of a module called setuptools not being at the latest version. To upgrade it to the latest version, on command prompt, you will have to write pip install --upgrade setuptools. Also, in the script, writing import setuptools may help. If the version of setuptools is more than 50.0.0 then everything should be fine.

7.) After all these steps, in auto-py-to-exe, when the conversion is complete, the .exe file will be in the folder that you would have chosen (by default, it is ‘c:/users/name/output’) or it would have been removed by your antivirus if you have one. Every antivirus has different methods to restore a file so just experiment if you don’t know.

Here is how the simple GUI of auto-py-to-exe can be used to make a .exe file.

enter image description here

PyInstaller Overview

PyPI
PyPI - Python Version
Read the Docs (version)
PyPI - Downloads

PyInstaller bundles a Python application and all its dependencies into a single
package. The user can run the packaged app without installing a Python
interpreter or any modules.

Documentation: https://pyinstaller.org/
Code: https://github.com/pyinstaller/pyinstaller

PyInstaller reads a Python script written by you. It analyzes your code
to discover every other module and library your script needs in order to
execute. Then it collects copies of all those files — including the active
Python interpreter! — and puts them with your script in a single folder, or
optionally in a single executable file.

PyInstaller is tested against Windows, macOS, and GNU/Linux.
However, it is not a cross-compiler:
to make a Windows app you run PyInstaller in Windows; to make
a GNU/Linux app you run it in GNU/Linux, etc.
PyInstaller has been used successfully
with AIX, Solaris, FreeBSD and OpenBSD,
but is not tested against them as part of the continuous integration tests.

Main Advantages

  • Works out-of-the-box with any Python version 3.7-3.11.
  • Fully multi-platform, and uses the OS support to load the dynamic libraries,
    thus ensuring full compatibility.
  • Correctly bundles the major Python packages such as numpy, PyQt5,
    PySide2, PyQt6, PySide6, wxPython, matplotlib and others out-of-the-box.
  • Compatible with many 3rd-party packages out-of-the-box. (All the required
    tricks to make external packages work are already integrated.)
  • Works with code signing on macOS.
  • Bundles MS Visual C++ DLLs on Windows.

Installation

PyInstaller is available on PyPI. You can install it through pip:

Requirements and Tested Platforms

  • Python:
    • 3.7-3.11. Note that Python 3.10.0 contains a bug making it unsupportable by
      PyInstaller. PyInstaller will also not work with beta releases of Python
      3.12.
  • Windows (32bit/64bit):
    • PyInstaller should work on Windows 7 or newer, but we only officially support Windows 8+.
    • Support for Python installed from the Windows store without using virtual
      environments requires PyInstaller 4.4 or later.
    • Note that Windows on arm64 is not yet supported. If you have such a
      device and want to help us add arm64 support then please let us know on
      our issue tracker.
  • Linux:
    • GNU libc based distributions on architectures x86_64, aarch64,
      i686, ppc64le, s390x.
    • musl libc based distributions on architectures x86_64, aarch64.
    • ldd: Console application to print the shared libraries required
      by each program or shared library. This typically can be found in
      the distribution-package glibc or libc-bin.
    • objdump: Console application to display information from
      object files. This typically can be found in the
      distribution-package binutils.
    • objcopy: Console application to copy and translate object files.
      This typically can be found in the distribution-package binutils,
      too.
    • Raspberry Pi users on armv5armv7 should add piwheels as an extra
      index url then pip install pyinstaller
      as usual.
  • macOS (x86_64 or arm64):
    • macOS 10.15 (Catalina) or newer.
    • Supports building universal2 applications provided that your installation
      of Python and all your dependencies are also compiled universal2.

Usage

Basic usage is very simple, just run it against your main script:

pyinstaller /path/to/yourscript.py

For more details, see the manual.

Untested Platforms

The following platforms have been contributed and any feedback or
enhancements on these are welcome.

  • FreeBSD
    • ldd
  • Solaris
    • ldd
    • objdump
  • AIX
    • AIX 6.1 or newer. PyInstaller will not work with statically
      linked Python libraries.
    • ldd
  • Linux on any other libc implementation/architecture combination not listed
    above.

Before using any contributed platform, you need to build the PyInstaller
bootloader. This will happen automatically when you pip install
pyinstaller
provided that you have an appropriate C compiler (typically
either gcc or clang) and zlib’s development headers already installed.

Support

  • Official debugging guide: https://pyinstaller.org/en/v5.7.0/when-things-go-wrong.html
  • Assorted user contributed help topics: https://github.com/pyinstaller/pyinstaller/wiki
  • Web based Q&A forums: https://github.com/pyinstaller/pyinstaller/discussions
  • Email based Q&A forums: https://groups.google.com/g/pyinstaller

Changes in this Release

You can find a detailed list of changes in this release
in the Changelog section of the manual.

Понравилась статья? Поделить с друзьями:
  • Python интерпретатор скачать для windows 10 64 bit
  • Python запуск скрипта при старте windows
  • Python запуск скрипта в фоновом режиме windows
  • Python для системного администратора windows книга
  • Python для windows server 2008 r2