Как конвертировать py в exe на windows

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

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

Установка 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 позволяет создать исполняемый файл для обработки скрытых импортов и других файлов данных с помощью хуков.

Код, написанный на 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.

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

0

15.04.201915:0215.04.2019 15:02:03

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

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

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

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

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

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

pyinstaller --onefile main.py 

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

Как из py сделать exe

Python становиться с каждым годом все популярней особенно у новичков. На самом деле это и понятно? так как синтаксис языка в отличает от других языков программирования, достаточной простой и если немного почитать мануалы и посмотреть ролики на ютубе можно написать простенькую программу. Возможности Python практически безграничные, на нем можно написать все что угодно. Например, в прошлой статье я рассказывал о том как можно создавать программы с графическим интерфейсом. Сегодня же поговорим о том как можно сделать программу которая будет запускаться на любом компьютере с Windows без установленного Python, если проще говоря покажу как можно преобразовать файл .py в .exe.

Если вы только начали изучать Python то следующие статьи будут Вам очень полезны.

Ошибка «PIP» или «Python»

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

Фреймворк для веб-приложений

И так для того чтобы из файла .py сделать .exe необходимо установить специальную библиотеку, с помощью которой можно скомпилировать python скрипт, для этого открываем командную строку и вводим

pip install pyinstaller

Py в exe

Кстати если после ввода вы видите следующие сообщение ««PIP» не является внутренней или внешней командой, исполняемой программой или пакетным файлом» то читаем статью ссылку на которую я оставил выше.

Если же установка прошла без ошибок, тогда нужно перейти в директорию где у вас храниться файл скрипт командой

cd C:/…

Для компиляции вводим следующею команду

pyinstaller test.py

test.py — ваш скрипт

Как из py сделать exe

После завершения компиляции в папке где лежал ранее лежа ваш скрипт py появиться еще одна «Dist» в ней папка «test» в которой будет ваша программа. Теперь вашу программу можно будет запустить на любом другом компьютере.

Компилируем код Python в файл exe

Но как мы видим у нас получился не один файл и несколько. Что бы сделать из py всего один файл exe, нужно ввести туже команду но только добавить специальный флаг.

pyinstaller -F test.py

код Python в файл exe быстро и просто

После завершения в папке «dist» появиться только один файл exe.

Компилируем код Python в файл exe быстро и просто

Как видите скомпилировать скрипт и сделать из py exe достаточно просто, но есть несколько нюансов.

Если у вас код достаточно большой то готовьтесь к тому что и файл exe будет внушительных размеров, для примера могу сказать что код из 60 строк будет весить 110-120 Mb.

Так же если код скомпилирован в 64 битной ОС то в 32 битной он не запустится. Если код скомпилирован в 32 битной то он будет работать и 64 битной.

pythonexe

Способ 1

Мы рассмотрим создание .exe с помощью библиотеки модуля py2exe.  Для этого необходим Python 3.4 и ниже.

Если у вас установлена более высокая версия Python, попробуйте использовать Способ 2 (ниже)

Для  Python2.х   py2exe доступен по ссылке  http://sourceforge.net/project/showfiles.php?group_id=15583.

В этом примере мы рассмотрим создание .exe на примере Python3.4.

Прежде всего на нужно создать виртуальное окружение  для  Python3.4. В этом примере мы назовем myenv, Вы можете выбрать любое другое имя, но не забывайте сделать соответствующие изменения.

На терминале наберите следующие команды:

>py -3.4 -m venv myenv
> myenvScriptsactivate.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:ProjectsPython hello.py). Это создаст папку DIST, которая содержит исполняемый файл. Для быстрого доступа к нему, наберите в терминале:

> explorer dist

Вы увидите путь к папке, где находится EXE-файл.

Примечание: При выполнении, откроется окно и исчезают так же быстро, как и появилось.
Это происходит потому, что операционная система автоматически закрывает терминал, в котором консольная программа закончена.
Для того, чтобы изменить эту ситуацию, можно добавить строчку

> input (" Нажмите для выхода ... ")

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

Вы можете подробно изучить использование  py2exe в документации на странице модуля: https://pypi.python.org/pypi/py2exe
Выход из виртуального окружения производится командой

>deactivate

Способ 2

Через командную строку Windows устанавливаем pyinstaller:

>pip install pyinstaller

В командной строке переходим в папку, где находится файл

cd c:... 

Затем в командной строке набираем команду

 pyinstaller --onefile example.py 

Вместо exapmle.py используем имя файла, из которого нужно создать exe файл.

Через пару минут все готово! Скоркее всего, exe файл будет находится во созданной подпапке dist

Перейти к содержанию

На чтение 2 мин Просмотров 1.5к. Опубликовано 21.04.2022

Содержание

  1. Введение
  2. Установка pyinstaller
  3. Конвертация программы без интерфейса
  4. Конвертация программы с графическим интерфейсом
  5. Заключение

Введение

Научимся конвертировать python файл в исполняемый exe файл с помощью pyinstaller.

Установка pyinstaller

Для начала нужно установить pyinstaller. Для этого нужно перейти в терминал и прописать:

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

Для перехода в папку нужно прописать:

cd путь_к_папке

Далее рассмотрим параметры pyinstaller, которые нам понадобятся:

-F – Создаёт исполняемый exe файл одним файлом

-i – Добавляет иконку exe файлу

-w – Скрывает окно консоли

Конвертация программы без интерфейса

Если нужно конвертировать программу без интерфейса в один файл и без иконки, то приписываем следующее:

Конвертация программы без интерфейса с добавлением иконки:

pyinstaller -F -i icon_name.ico name.py

Иконка обязательно должна быть с расширением .ico

Конвертация программы с графическим интерфейсом

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

pyinstaller -F -w name.py

Для конвертации программы с графическим интерфейсом и с иконкой прописываем:

pyinstaller -F -w -i icon_name.ico name.py

Заключение

В статье мы с Вами разобрали один из способов конвертации python файла в исполняемый exe файл.

Надеюсь Вам понравилась статья, удачи! 🙂

Admin

Понравилась статья? Поделить с друзьями:
  • Как конвертировать pdf в word windows 7
  • Как конвертировать pdf в jpg средствами windows
  • Как крашнуть сессию gta online windows 10
  • Как конвертировать mbr в gpt для установки windows 11
  • Как конвертировать mbr в gpt во время установки windows 10