Перейти к содержимому

Как код превратить в программу

  • автор:

Превращаем код на Python в исполняемый EXE-файл

Логотип компании Tproger

Как скомпилировать Python-код в файл EXE, чтобы защитить свой код или наглядно показать работу вашей программы.

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

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

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

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

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

Почему возникает потребность конвертировать Python-код в 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"") # 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». Значит, всё прошло успешно. ?

Превращаем код на Python в исполняемый EXE-файл 1

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

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

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

auto-py-to-exe 

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

Превращаем код на Python в исполняемый EXE-файл 2

Запускаем компилятор 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.

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

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

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

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

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

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

Py в exe

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Раздел: Python Метки: к из py сделать exe

Py в exe : 4 комментария

  1. Юрий 01.11.2021 Круто. Надо будет попробовать. А от какой версии Windows будет работать программа? То есть от XP и выше? Или там от семерки? Или же это от кода зависит и от настроек компилятора?
  1. anonymouse 17.01.2022 Новые версии от 7, не считая её. Более поздние версии от XP-шки
  1. admin Автор записи 19.05.2022 Нужно использовать версию python 32-bit

Компиляция программы на python 3 в exe с помощью программы cx_Freeze

Python 3 логотип

Наверняка, у каждого Python-программиста возникало непреодолимое желание, а изредка и реальная потребность, скомпилировать свою программу на python в exe файл. Сегодня я расскажу, как это сделать с помощью программы cx_Freeze.

Вопрос 1: а оно надо?

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

«Компиляция» программы на python — процесс, который может сопровождаться множеством проблем. Более того, это не компиляция в машинный код, как, например, программы на C, а лишь «сборка» в исполняемый файл вашей программы вместе с частью интерпретатора python.

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

Установка cx_Freeze

Если компилировать программу на python всё-таки нужно, то скачиваем cx_Freeze с http://www.lfd.uci.edu/~gohlke/pythonlibs/#cx_freeze (так как в ней нет одного неприятного бага, который есть в официальной версии).

Затем устанавливаем, не забывая правильно выбрать директорию, где расположен python.

Компиляция

Компилировать будем программу «блэкджек» (файл 21.py) (кому лень смотреть, привожу полный исходный код).

   Создаём в папке с программой файл setup.py с содержимым:
Переходим в командную строку (обычно Пуск → Стандартные → Командная строка). Переходим в папку с программой (в моём случае D:\Dima\py). Запускаем команду C:\Python34\python.exe setup.py build (вместо C:\Python34 нужно написать папку, куда установлен python).

Начнется процесс сборки, в котором cx_Freeze может выдавать предупреждения, но, скорее всего, они не повлияют на работу программы.

Поздравляю! В папке build теперь есть ваша папка с исполняемым файлом!

Заметьте, не файл, а папка! Все остальные файлы также нужны для работы программы (да, это недостаток cx_Freeze). К тому же, при завершении программы окно сразу закрывается (а не ждет нажатия клавиши), поэтому в конец программы нужно дописать что-то вроде:

И скомпилировать ещё раз.

Также можно создать msi-архив командой C:\Python34\python.exe setup.py bdist_msi.

Разумеется, при компиляции более сложных программ вы можете столкнуться с более сложными проблемами.

Для их решения следует воспользоваться официальной документацией.

Для вставки кода на Python в комментарий заключайте его в теги

  • Модуль csv - чтение и запись CSV файлов
  • Создаём сайт на Django, используя хорошие практики. Часть 1: создаём проект
  • Онлайн-обучение Python: сравнение популярных программ
  • Книги о Python
  • GUI (графический интерфейс пользователя)
  • Курсы Python
  • Модули
  • Новости мира Python
  • NumPy
  • Обработка данных
  • Основы программирования
  • Примеры программ
  • Типы данных в Python
  • Видео
  • Python для Web
  • Работа для Python-программистов
  • Сделай свой вклад в развитие сайта!
  • Самоучитель Python
  • Карта сайта
  • Отзывы на книги по Python
  • Реклама на сайте

Как конвертировать Java программу в .exe файл

Часто разработчики, особенно начинающие, сталкиваются с необходимостью конвертировать java программу в исполняемый .exe файл. Это может быть полезно, например, если программа должна работать на компьютерах без установленной Java, или если требуется, чтобы программа имела свой уникальный иконку на рабочем столе.

Важно отметить, что Java программы обычно не конвертируются в .exe файлы, как это происходит с программами на C++ или C#. Вместо этого, они компилируются в .class файлы (байт-код), которые затем интерпретируются Java Virtual Machine (JVM). Однако существуют инструменты и подходы, которые позволяют «упаковать» .class файлы в .exe.

Использование Launch4j

Один из таких инструментов — это Launch4j. Это кросс-платформенный инструмент, который обертывает .jar файлы в легковесные .exe файлы. Launch4j также позволяет добавить иконку к .exe файлу, указать версию JVM для запуска и многое другое.

Пример использования Launch4j:

  1. Сначала нужно скомпилировать java программу в .jar файл.
  2. Затем запустить Launch4j и выбрать пункт «New configuration».
  3. В поле «Output file» указать путь и имя будущего .exe файла.
  4. В поле «Jar» указать путь к .jar файлу.
  5. В разделе «JRE» можно указать минимальную и максимальную версию JVM.
  6. После этого можно нажать «Build» и получить готовый .exe файл.

Создание инсталлятора

Если требуется создать инсталлятор для программы, можно воспользоваться инструментом Inno Setup. Он позволяет создать полноценный инсталлятор, который может установить JRE, если он отсутствует на компьютере пользователя, а также создать ярлык на рабочем столе и добавить программу в меню «Пуск».

Пример использования Inno Setup:

  1. Сначала нужно создать скрипт инсталляции, в котором указать, какие файлы нужно установить и куда.
  2. Затем можно запустить Inno Setup и выбрать пункт «New».
  3. В появившемся окне нужно выбрать пункт «I want to create a new script file».
  4. Далее следовать инструкциям мастера, указывая требуемые параметры.
  5. После завершения работы мастера можно нажать «Build» и получить готовый инсталлятор.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *