Как создать exe файл для Python кода с помощью PyInstaller
Установка PyInstaller не отличается от установки любой другой библиотеки Python.
pip install PyInstaller
Вот так можно проверить версию PyInstaller.
pyinstaller --version
Я использую PyInstaller версии 4.2.
Создание exe файла с помощью PyInstaller
PyInstaller собирает в один пакет Python-приложение и все необходимые ему библиотеки следующим образом:
- Считывает файл скрипта.
- Анализирует код для выявления всех зависимостей, необходимых для работы.
- Создает файл spec, который содержит название скрипта, библиотеки-зависимости, любые файлы, включая те параметры, которые были переданы в команду PyInstaller.
- Собирает копии всех библиотек и файлов вместе с активным интерпретатором Python.
- Создает папку BUILD в папке со скриптом и записывает логи вместе с рабочими файлами в BUILD.
- Создает папку DIST в папке со скриптом, если она еще не существует.
- Записывает все необходимые файлы вместе со скриптом или в одну папку, или в один исполняемый файл.
Если использовать параметр команды 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-файл будет называться так же, как и файл скрипта.
Python создает каталог распространения, который содержит основной исполняемый файл, а также все динамические библиотеки.
Вот что произойдет после запуска файла.
Также, открыв 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.
Можно скопировать исполняемый файл на рабочий стол и запустить, чтобы убедиться, что нет никакой ошибки, связанной с отсутствием файла.
Дополнительные импорты с помощью 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-packages\tensorflow_core\python_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-tutorial\simpleModel.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 в полноценную программу. Отлично, давайте начнем!
Шаг 1: Начните с импорта модулей
Первым шагом для создания программы на Python является импорт нужных модулей. Модули - это файлы, содержащие функции и классы, которые могут быть использованы в вашей программе. Например, для работы с файлами нам может понадобиться модуль os:
import os
Шаг 2: Создайте функции и методы
Для написания программы на Python, вы часто будете использовать функции и методы. Функции - это блоки кода, которые выполняют определенные действия и возвращают результаты. Методы - это функции, описанные внутри класса. Вот пример простой функции, которая выводит приветствие:
def say_hello(): print("Привет, мир!")
Шаг 3: Определите точку входа
Вся программа на Python должна иметь точку входа, с которой начинается ее выполнение. Обычно точкой входа является функция с именем main. Ниже приведен пример программы, в которой точкой входа является функция main:
def main(): say_hello() if __name__ == '__main__': main()
Шаг 4: Параметризуйте программу
Чтобы сделать вашу программу более гибкой, вы можете использовать параметры. Параметры позволяют ввести в программу данные во время ее выполнения. Вот пример программы, которая принимает имя пользователя в качестве параметра:
def greet_user(name): print(f"Привет, !") def main(): user_name = input("Введите ваше имя: ") greet_user(user_name) if __name__ == '__main__': main()
Шаг 5: Обработайте ошибки
В процессе разработки программы на Python, иногда могут возникать ошибки. Чтобы ваша программа была надежной, важно обработать возможные ошибки. Вот пример программы с обработкой ошибки некорректного ввода имени:
def greet_user(name): print(f"Привет, !") def main(): user_name = input("Введите ваше имя: ") try: greet_user(user_name) except: print("Произошла ошибка при приветствии пользователя.") if __name__ == '__main__': main()
Шаг 6: Сохраните программу в файле .py
После того, как вы завершили написание программы, сохраните ее в файле с расширением .py. Например, вы можете назвать файл program.py.
Шаг 7: Запустите программу
Наконец, чтобы запустить программу, откройте терминал или командную строку, перейдите в каталог, где находится файл программы, и введите следующую команду:
python program.py
Где program.py - имя вашего файла программы.
Вывод
Теперь вы знаете, как превратить ваш код на Python в полноценную программу. Следуя этим шагам, вы сможете создавать различные программы и решать задачи. Не бойтесь экспериментировать и учиться на практике. Удачи в программировании!
Как превратить код в Python программу: пошаговое руководство для начинающих
Программирование на Python начинается с создания кода в текстовом редакторе. Чтобы превратить этот код в программу Python, вам необходимо сохранить его с расширением .py. Давайте рассмотрим пример:
print("Привет, мир!")
В этом примере мы используем функцию print (), чтобы вывести фразу "Привет, мир!" на экран. Чтобы превратить этот код в программу Python, сохраните его в файл с расширением .py, например, hello_world.py. Затем вы можете запустить эту программу, открыв командную строку и перейдя в каталог, в котором находится файл с программой. Введите команду "python имя_файла.py", и программа будет запущена, выводя фразу "Привет, мир!" на экран. Таким образом, вы можете превратить код Python в программу, создав файл с расширением .py и запустив его с помощью интерпретатора Python.
Детальный ответ
Как код превратить в программу Python
Процесс превращения кода в программу Python может показаться сложным для новичков, но на самом деле это довольно просто. В этой статье мы рассмотрим основные шаги, которые помогут вам преобразовать ваш код в полноценную программу.
1. Заголовок программы
Первым шагом является написание заголовка программы. Заголовок должен содержать комментарий, который указывает на то, что это программа на языке Python. В нем также могут быть указаны дополнительные сведения, такие как имя автора и дата создания программы. Например:
# Пример программы на языке Python # Автор: Вася Пупкин # Дата: 01.01.2023 # Ваш код начинается здесь
2. Импортирование модулей
Вторым шагом является импортирование необходимых модулей. Модули - это файлы, которые содержат функции и классы, которые вы можете использовать в своей программе. Некоторые модули, такие как math или random , уже предустановлены в Python и могут быть использованы без дополнительной установки. Для импортирования модуля используйте команду import . Например:
import math # Ваш код продолжается здесь
3. Определение функций и классов
Третий шаг состоит в определении функций и классов, которые будут использоваться в вашей программе. Функции - это блоки кода, которые выполняют определенные задачи, а классы - это шаблоны, которые определяют объекты и их свойства и методы. Начните с использования ключевого слова def , чтобы определить функцию, или ключевого слова class , чтобы определить класс. Например:
def hello_world(): print("Привет, мир!") class Rectangle: def __init__(self, width, height): self.width = width self.height = height
4. Главная функция
Четвёртым шагом является определение главной функции. Главная функция - это функция, которая будет запускаться при вызове программы. Чтобы определить главную функцию, просто напишите ее код после всех определений функций и классов. Например:
def main(): hello_world() rectangle = Rectangle(10, 5) print("Площадь прямоугольника:", rectangle.width * rectangle.height) if __name__ == "__main__": main()
5. Вызов главной функции
Последним шагом является вызов главной функции. Чтобы запустить программу, просто вызовите главную функцию с помощью ее имени. Например:
main()
Поздравляю! Вы только что превратили ваш код в полноценную программу Python. Теперь вы можете запустить ее и увидеть результаты.
Пример программы
Ниже приведен пример программы, которая принимает два числа от пользователя и выводит их сумму:
def get_sum(): num1 = int(input("Введите первое число: ")) num2 = int(input("Введите второе число: ")) total = num1 + num2 print("Сумма:", total) def main(): get_sum() if __name__ == "__main__": main()
В этом примере мы сначала определяем функцию get_sum() , которая принимает два числа от пользователя, складывает их и выводит сумму. Затем мы определяем главную функцию main() , которая вызывает функцию get_sum() . В конце программа вызывает главную функцию, что приводит к выполнению всей программы. Теперь вы знаете основные шаги для превращения кода в программу Python. Практикуйтесь в написании своих программ, используя эти шаги, и вы станете более уверенными в создании полноценных приложений на языке Python.
Как скомпилировать CPP в EXE
wikiHow работает по принципу вики, а это значит, что многие наши статьи написаны несколькими авторами. При создании этой статьи над ее редактированием и улучшением работали, в том числе анонимно, 18 человек(а).
Количество просмотров этой статьи: 75 069.
В этой статье:
Это пошаговое руководство по компиляции исходного кода на C++ в EXE файлы (в Windows). Описанные методы также работают при компиляции форматов .c ++, .cc и .cxx (возможно, что и .c). Это руководство предполагает, что исходный код на C++ является консольным приложением и не требует никаких внешних библиотек.
Скачайте C++ компилятор. Одним из лучших компиляторов для компьютеров под управлением Windows является бесплатный Microsoft Visual C++ 2012 Express.
Начните новый проект в Visual C++. Это довольно просто. Нажмите «New Project» в левом верхнем углу, а затем следуйте инструкциям на экране. Введите название проекта и в открывшемся окне нажмите «Finish».
Скопируйте и вставьте все .cpp файлы в каталог «Source Files», а затем скопируйте и вставьте все .h файлы (если таковые имеются) в каталог «Header Files». Переименуйте основной CPP файл (тот, который содержит «int main()») на выбранное вами название проекта.
Создание и компиляция. Нажмите клавишу F7, чтобы создать программу.
Найдите EXE файл. Перейдите в каталог «Projects», в который Visual C++ помещает все программы (в Windows 7 этот каталог расположен в папке «Мои документы). В каталоге «Debug» найдите EXE файл под именем, которые вы дали ему ранее.
Проверьте файл. Дважды щелкните по EXE файлу, чтобы запустить его; если все прошло хорошо, то программа работает нормально. Если что-то пошло не так, попробуйте выполнить описанные действия еще раз.