Как py файл скомпилировать в exe файл?
Здравствуйте! Мне необходимо скомпилировать файл python в exe. Через pyinstaller main.py выходит ошибка failed to create process. На компьютер устанавливается только pyinstaller 3.3.1, версия выше не устанавливается. Может можно каким-то друим способом скомпилировать?
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Как скомпилировать файл *.py в *.exe
Здравствуйте, уважаемые специалисты питона. Раньше не запаривался и писал программы на питон для.
Как скомпилировать код в exe-файл?
Есть код, уже который раз пытаюсь сделать из него исполняемый файл на Windows, пробовал.
Как скомпилировать свой файл в exe?
Всем привет! Только начал изучать Питона. В консоли всё окей отображается, но как вынести всю.
Как скомпилировать python в файл .exe на Linux с pyinstaller?
Доброе время суток всем прогерам. Мне нужна помощь. Ситуация такая. Недавно начал изучать python.
635 / 475 / 179
Регистрация: 28.05.2012
Сообщений: 1,412
а можно взглянуть на ваш main.py ?
Регистрация: 04.05.2019
Сообщений: 99
Сообщение от Belena123321 
Здравствуйте! Мне необходимо скомпилировать файл python в exe. Через pyinstaller main.py выходит ошибка failed to create process. На компьютер устанавливается только pyinstaller 3.3.1, версия выше не устанавливается. Может можно каким-то друим способом скомпилировать?
Здравствуйте,прикрепите,пожалуйста файл,может у вас там ошибка.
Компиляторы:
cx-Freeze
Малоизвестный компилятор,собирает не очень много файлов в итоге,всё барахло перемещает в папку lib.
Многого сказать не могу-толком не пользовался,но как вариант.
Файл с установкой:
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 7 8 9
from cx_Freeze import setup,Executable setup(name='test', version=1.0, description='None', executables = [Executable('test.py')]) #version - версия,description - описание,executables - исполняемые файлы,test.py - сам файл #Установка пакета в cmd: "pip install cx-Freeze" #Команда компиляции: "python setup_cx.py build" setup_cx.py - файл с этим кодом
Py2exe
Более известный компилятор,вроде как неплохо работает,но компилирует в большой размер,решение этого есть на Хабре
Файл с установкой:
Кликните здесь для просмотра всего текста
1 2 3 4 5 6 7 8 9 10 11
from distutils.core import setup import py2exe setup( windows=[{"script":"main.py"}], options={"py2exe": {"includes":["sip"]}} ) # main.py - файл для компиляции #Установка библиотеки : "pip install py2exe" #Компиляция командой: "setup.py py2exe" setup.py - файл с этим кодом
Ещё как вариант компилировать через QtCreator-там компилирует почти на все архитектуры вроде,но оно сожрёт 500 мб физической памяти + это такой способ.
Надеюсь,что я Вам помог,но сначала,когда будет проблема выкладывайте сам файл с проблемой и полностью текст ошибки — так Вам помочь в разы легче.
![]()
5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение от Kirilus3000 
Компиляторы:
Ничего из того, что ты перечислил, компилятором не является.
Более того, стоит запомнить, что Python ни во что не компилируется, кроме байткода.
P.S. Большинство Python программистов не использует ничего из перечисленного , потому что оно не нужно.
Естественно, кроме школьников. Но они и не программисты.
Регистрация: 22.12.2019
Сообщений: 35
Сообщение от Garry Galler 
Python ни во что не компилируется, кроме байткода.
Тогда раскажи, как компилировать в байт код
![]()
5416 / 3840 / 1214
Регистрация: 28.10.2013
Сообщений: 9,554
Записей в блоге: 1
Сообщение от блблблблблблблб 
Тогда раскажи, как компилировать в байт код
В байткод компилирует CPython. Скачай и компилируй.
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
Помогаю со студенческими работами здесь

Как скомпилировать C# проект в .exe файл?
Как скомпилировать C# проект в .exe файл? И взять, скопировать и запустить на любом компьютере без.
Как скомпилировать приложение в exe-файл
Всем привет Создал программу в Visual Studio Express 2012 но не знаю теперь как ее сохранить в exe.
Как скомпилировать проект в exe файл?
Как скомпилировать проект в visual studio в exe
Как скомпилировать единый exe файл?
Как скомпилировать единый exe файл в проекте Visual Studio? 2022
Как скомпилировать программу в один exe файл
Здравствуйте, скажите я новичек в VB нужно что-бы программа скомпилировалась в один запускаемый.

Как скомпилировать код из TextBox в exe-файл
Здравствуйте! Я бы хотел узнать, как скомпилировать код из TextBox в exe-файл. Заранее спасибо за.
Как скомпилировать два проекта в 1 exe файл
У меня такая проблема. Моя программа состоит из 2 проектов. После компиляции у меня создаются 2 exe.
Как скомпилировать python скрипт на exe для Windows 7, 8, 10? [закрыт]
Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.
Закрыт 2 года назад .
Я использую pyinstaller для компиляции, но при запуске приложения выдаётся ошибка на VirtualBox Windows 7. Запуск программы не возможен, так как на компьютере отсутствует api-ms-win-core-path-|1-1-0.dll. Попробуйте переустановить программу.
Отслеживать
задан 5 авг 2021 в 9:32
41 6 6 бронзовых знаков
Возможный дубликат вопроса: Как скомпилировать .py в .exe?
5 авг 2021 в 9:40
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
Запустите средство проверки системных файлов (System File Checker), чтобы восстановить поврежденный или отсутствующий файл api-ms-win-core-path-l1-1-0.dll :
Для этого запустите командную строку от имени администратора и введите команду
sfc /scannow
Средство проверки системных файлов начнет поиск неполадок, связанных с api-ms-win-core-path-l1-1-0.dll , а также других неполадок с системными файлами. Для завершения процесса следуйте инструкциям на экране.
Если не помогло, то попробуйте обновить Windows:
- Нажмите кнопку «Пуск» в Windows
- В поле поиска введите «Обновить» и нажмите ENTER.
- В диалоговом окне Центра обновления Windows нажмите «Проверить наличие обновлений» (или аналогичную кнопку в зависимости от версии Windows)
- Если обновления доступны для загрузки, нажмите «Установить обновления».
После завершения обновления следует перезагрузить ПК.
Инструкции брал здесь. В свое время так и решил эту проблему
Компиляция Python

Предположим, вы разработали приложение или библиотеку на Python и уже готовитесь передать его / её заказчику. И в этот момент появляются самые неудобные вопросы.
Во-первых, к вам прибегает озадаченный проджект-менеджер и говорит: «Мы решили не отдавать исходный код, ведь это наша интеллектуальная собственность. Придумайте что-нибудь, чтобы заказчик был доволен, а мы оставили у себя исходники».
Во-вторых, возникает вопрос окружения — хочется быть уверенным, что заказчик справится с установкой правильной версии Python и всех вспомогательных библиотек, но это не всегда простая задача. Было бы удобно упаковать приложение в автономный исполняемый файл.
И, наконец, хочется, чтобы конечное приложение работало быстрее, чем в среде разработки.
И вот тут настало время скомпилировать Python-код. Меня зовут Руслан, я старший разработчик компании «Цифровое проектирование». Сегодня я расскажу, как выбрать тот самый компилятор из множества доступных.
AOT/JIT
Компиляция – это сборка программы, включающая: трансляцию всех модулей программы, написанных на языке программирования высокого уровня, в эквивалентные программные модули на низкоуровневом языке, близком к машинному коду, или на машинном языке и сборку исполняемой программы. Существует два вида компиляции:
- AOT-компиляция (ahead-of-time) – компиляция перед исполнением программы. Т.е. программа компилируется один раз, в результате компиляции получается исполняемый файл.
- JIT-компиляция (just-in-time) – компиляция во время исполнения программы. Т.е. программа (а точнее, блоки программы) компилируется много раз — при каждом запуске.
Бенчмарк
Так как одной из целей является ускорение, необходимо оценить, насколько быстро работает скомпилированный код. В качестве бенчмарка будем использовать pyperfomance. К сожалению, pyperfomance не подошел для Cython и Pythran, потому что не позволяет визуализировать все возможности языка. Ускорения для Cython без модификации кода получить не удалось, а Pythran не умеет в пользовательские классы. Для них воспользуемся вычислением числа пи:
def approximate_pi(n): step = 1.0 / n result = 0 for i in range(n): x = (i + 0.5) * step result += 4.0 / (1.0 + x * x) return step * result
Эксперименты будем проводить на процессоре Intel Core i7 10510U. На CPython 3.9.7 время вычисления числа пи до 100.000.000 знака заняло 5.82 секунды.
AOT-компиляция Python
PyInstaller
PyInstaller упаковывает приложения Python в автономные исполняемые файлы в Windows, GNU / Linux, Mac OS X, FreeBSD, Solaris и AIX.
Устанавливается через pip:
pip install pyinstaller
После установки для создания исполняемого файла достаточно выполнить команду:
В результате будет создано:
- *.spec – файл спецификации (используется для ускорения будущих сборок приложения, связи файлов данных с приложением, для включения .dll и .so файлов, добавление в исполняемый файл параметров runtime-а Python);
- build/ – директория с метаданными для сборки исполняемого файла;
- dist/ – директория, содержащая все зависимости и исполняемый файл.
Сборку приложения можно настроить с помощью параметров командной строки:
- —name – изменение имени исполняемого файла (по умолчанию, такое же, как у сценария);
- —onefile – создание только исполняемого файла (по умолчанию, папка с зависимостями и исполняемый файл);
- —hidden-import – перечисление импортов, которые PyInstaller не смог обнаружить автоматически;
- —add-data – добавление в сборку файлов данных;
- —add-binary – добавление в сборку бинарных файлов;
- —exclude-module – исключение модулей из исполняемого файла;
- —key – ключ шифрования AES256. Да, приложение не будет содержать исходного кода, но его можно декомпилировать, например, так: Pyinstaller Extractor (.exe → .pyc) и uncompile6 (.pyc → .py). Для скрытия исходного кода можно обфусцировать байт-код Python с помощью шифрования.
У PyInstaller есть ограничения. Он работает с Python 3.5–3.9. Поддерживает создание исполняемых файлов для разных операционных систем, но не умеет выполнять кросскомпиляцию, т. е. необходимо генерировать исполняемый файл для каждой ОС отдельно. Более того, исполняемый файл зависит от пользовательского glibc, т. е. необходимо генерировать исполняемый файл для самой старой версии каждой ОС.
PyInstaller знает о многих Python-пакетах и умеет их учитывать при сборке исполняемого файла. Но не о всех. Например, фреймворк uvicorn практически весь нужно явно импортировать в файл, к которому будет применена команда pyinstaller. Полный список поддерживаемых из коробки пакетов можно посмотреть здесь.
Cython
Cython — это оптимизирующий статический компилятор как для языка программирования Python, так и для расширенного языка программирования Cython. С его помощью можно код на Python транслировать в С и затем скомпилировать в бинарник, совместимый с CPython. Компиляцию придется делать под все операционные системы и архитектуры процессора.
Ставится Cython через pip:
pip install Cython
Рассмотрим его работу на примере с вычислением числа пи:
def approximate_pi(int n): cdef float step cdef float result cdef float x step = 1.0 / n result = 0.0 for i in range(n): x = (i + 0.5) * step result += 4.0 / (1.0 + x * x) return step * result
А что делать, если в нашем проекте несколько файлов, которые нужно скомпилировать? Тогда нужно использовать так называемый сценарий сборки. С его помощью можно модернизировать сборку в зависимости от операционной системы, указывать несколько файлов, которые необходимо скомпилировать, и многое другое.
Создадим файл build.py:
from distutils.core import setup from Cython.Build import cythonize setup( ext_modules=cythonize("bench_cython.pyx"), )
Запустим: python build.py build_ext –-inplace
В результате будет сгенерирован .so/.dll файл.
Nuitka
Nuitka способна упаковывать приложения Python в автономные исполняемые файлы, а также транслировать Python-код в С для его последующей компиляции. Работает с разными версиями Python (2.6, 2.7, 3.3 — 3.9).
Ставится через pip:
pip install nuitka
Для генерации исполняемого файла достаточно выполнить команду:
python -m nuitka —follow-import some_program.py
Для компиляции модуля:
python -m nuitka —module some_module.py
Для компиляции пакета:
python -m nuitka —module some_package —include-package = some_package
Pythran
Pythran – статический компилятор Python, позиционирующий себя как ориентированный на научные вычисления и использующий преимущества многоядерных процессоров и блоков инструкций SIMD. Он транслирует Python-код, аннотированный описаниями интерфейса, в C++. До версии 0.9.5 (включительно) Pythran поддерживал Python 3 и Python 2.7. Последние версии поддерживают только Python 3.
pip install pythran
Генерируем бинарный файл .so:
Pythran по умолчанию не умеет в пользовательские классы, поэтому при попытке их компиляции будет выброшена ошибка:
Top level statements can only be assignments, strings,functions, comments, or imports
Добавим комментарий аннотации функции:
#pythran export approximate_pi(int) def approximate_pi(n): step = 1.0 / n result = 0 for i in range(n): x = (i + 0.5) * step result += 4.0 / (1.0 + x * x) return step * result
Скомпилируем и бенчмарк выдает 0,00007 секунды.
cx-Freeze
cx-Freeze – это набор скриптов и модулей преобразования скриптов Python в исполняемые файлы. cx_Freeze — кроссплатформенный. Он поддерживает Python 3.5.2 и выше.
Ставится с помощью pip:
pip install cx_Freeze
Для генерации исполняемого файла достаточно выполнить команду:
Сборку можно настроить с помощью параметров командной строки:
- -h, —help — справка;
- -O — оптимизировать сгенерированный байт-код согласно PYTHONOPTIMIZE;
- -c, —compress — сжать байт-код в zip-файлах;
- -s, —silent — выводить только предупреждения и ошибки;
- —target-dir=DIR, —install-dir=DIR — каталог, в который следует поместить целевой файл и все зависимые файлы.
Также возможно использование сценария сборки, например, так:
import sys from cx_Freeze import setup, Executable # Dependencies are automatically detected, but it might need fine tuning. build_exe_options = # GUI applications require a different base on Windows (the default is for a # console application). base = None if sys.platform == "win32": base = "Win32GUI" setup( name = "guifoo", version = "0.1", description = "My GUI application!", options = , executables = [Executable("guifoo.py", base=base)])
Сборка исполняемого файла:
python setup.py build
JIT-компиляция Python
JIT-компиляция не позволяет скрывать исходники или создавать автономный исполняемый файл, но дает возможность значительно ускорить выполнение программы.
PyPy
PyPy — интерпретатор языка программирования Python 2.7 и Python 3.7. Он написан на RPython и содержит:
- компилятор байт-кода, отвечающий за создание объектов кода Python из исходного кода пользовательского приложения;
- оценщик байт-кода, ответственный за интерпретацию объектов кода Python;
- стандартное объектное пространство, отвечающее за создание и управление объектами Python, видимыми приложением.
PyPy поддерживает сотни библиотек Python, включая NumPy.
Основные особенности (сравнение с CPython):
- Скорость. При выполнении длительно выполняющихся программ, когда значительная часть времени тратится на выполнение кода Python, PyPy может значительно ускорить ваш код.
- Использование памяти. Программы Python, требующие много памяти (несколько сотен Мб или более), могут занимать меньше места, чем в CPython. Однако это не всегда так, поскольку зависит от множества деталей. Также базовый уровень потребления оперативной памяти выше, чем у CPython.
Скачать PyPy можно с здесь. После скачивания PyPy готов к запуску после распаковки архива. Если необходимо сделать PyPy доступным для всей системы, достаточно поместить символическую ссылку на исполняемый файл pypy в /usr/local/bin. Также можно поставить с помощью pyenv.
PyPy работает на Mac, Linux (не все дистрибутивы) или Windows.
Для запуска кода с помощью PyPy вместо команды python3 (как c помощью CPython) достаточно воспользоваться командой pypy3:
Pyston
Pyston — это форк CPython 3.8.8 с дополнительной оптимизацией производительности. В настоящее время он поддерживает установку только из исходников. Или с помощью pyenv.
В Pyston поддерживаются все возможности CPython, в том числе C API для разработки расширений на языке Си. Среди основных отличий Pyston от CPython помимо общих оптимизаций выделяется использование DynASM JIT и inline-кэширования.
Заключение
Итак, мы рассмотрели 5 фреймворков AOT-компиляции Python. Для любителей аналитики, ниже приведена таблица со сравнительным анализом.
PyInstaller
Cython
Nuitka
Pythran
cx-Freeze
Генерация автономных исполняемых файлов
Компиляция python-модуля в исполняемый файл, совместимый с CPython
Статья Как создать графический интерфейс приложению + как скомпилировать его в .exe
Добрый день, сегодня мы с Вами научимся делать графический интерфейс приложениям в Python и компилировать их в .exe файл. Наверное, многих новичков уже достали консольные приложения, ведь их сложно показать другу и выглядеть будет не так эффектно. Сегодняшнюю статью я разбил на две части, а именно:
1. Создание графического интерфейса приложения. 2. Компиляция приложения на Python в .exe файл.
И так, без долгих предисловий приступим.
Глава 1. Графический интерфейс:
Для создания интерфейса мы будем использовать всеми нами любимый pyside и его QT designer. Для этого нам потребуется:
1. Python v3.4 и ниже. 2. Прямые руки ( желательно ).
Если у Вас установлен Python выше 3.4 , то переустановите его , либо установите вместе с существующим.
И так, заходим в консоль и первым делом проверяем, что у нас установлена нужная версия Python. Далее нам необходимо установить библиотеку pyside. Делается это простой командой.
pip install pyside
Далее переходим в директорию, где установлен сам Python, у меня это C:\Python34
Теперь нужно найти папку ‘Lib’. Не перепутайте с папкой ‘libs’.
Мы видим много файлов, но из них нам нужна папка ‘site-packages’
Переходим в неё и открываем папку ‘PySide’.
Так, вот мы и добрались до нашего любимого qt designer. Находим файл designer.exe. Что бы в дальнейшем легко открывать приложение, можем его ‘отправить’ на рабочий стол.
Далее мы запускаем его. Как только мы зашли, открывается форма, в которой мы можем выбрать тип будущего приложения, я выберу Main Window
После того, как мы выбрали тип, слева увидим таблицу с виджетами, а справа характеристики. Например, создам какую-нибудь форму. Справа в хар-ках, выбрав объект , мы можем увидеть колонку ‘StyleSheets’. Открываем её, здесь с помощью CSS задаются стили объекта, например красный фон.
Допустим, вы набросали своё приложение, сохраняем его. Расширение обязательно должно быть .ui ! Ну вот, мы сделали это, а как добавить какие-то функции? Легко. Открываем консоль, с помощью команды
cd путь к файлу
открываем директорию с файлом. Зачем? Если мы откроем этот файл, то увидим какую то разметку на xml, с ней ничего не сделать на python. Но мы этот файл переформатируем. Далее, вводим команду:
pyside uic "путь к файлу, включая его имя и расширение" -x -o "Путь к новому файлу, включая имя и расширение .py"
Нажимаем Enter и вуаля. Переходим в директорию и открываем файл, который был создан. Оттуда нам нужны только последние строки, копируем их.
У вас может быть немного по другому, если вы в начале выбрали не Main Window. Рядом с этим файлом создаём новый , в нём будет вся суть нашего приложения. Я его назову «script.py». Далее импортируем QtCore , QtGui из Pyside, класс ui из файла с интерфейсом из того, что мы скопировали , вырезаем строчку ‘import sys’ и вставляем её в начало. Выглядеть это должно так:
from PySide import QtCore, QtGui from ui import Ui_Form import sys
Строку »if __name__ == «__main__»:’ мы удаляем, она нам больше не понадобится. Теперь, между последней и предпоследней строкой мы можем писать логику приложения.
Я немного подкорректировал и вот, что должно получиться.
from PySide import QtCore, QtGui from ui import Ui_Form import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = Ui_MainWindow() ui.setupUi(MainWindow) MainWindow.show() # your code sys.exit(app.exec_())
Глава 2. Компиляция файла .py в .exe
Не волнуйтесь, эта глава будет намного проще .
Вы сделали программу с интерфейсом, но отправлять её другу, так он ещё и должен будет устанавливать все библиотеки? Нет, можно поступить намного проще! Сейчас я расскажу, как.
В папке я создал файл calc.py , в него разместил небольшой калькулятор и рядом разместил иконку калькулятора. Конечно можно и без иконки ( я покажу как ) , но это будет не так эффектно .
Для операция нам понадобится библиотека pyinstaller. Запускаем консоль и вводим команду:
pip install pyinstaller
Далее переходим в директорию с нашей программой, для этого используем всё ту же команду cd.
cd 'путь к директории файла'
Далее в консоли вводим команду
pyinstaller 'имя вашего файла'
Рядом с программой появилось несколько папок ( если файл .py полностью пустой, то ничего не будет ) . Из них нам нужна папка dist, там и находится наш .exe файл.
Теперь, даже если Вы в программе подключали какие-либо библиотеки, её можно запустить на любом компьютере, не устанавливая ничего. Но можно скомпилировать и без лишних файлов, это просто. В консоли вводим команду
pyinstaller -F 'имя вашего файла'
Теперь всё скомпилируется в единый файл в папке dist. А как же задействовать иконку? Добавляем флаг -i. Тоесть вот так:
pyinstaller -i 'путь к иконке' 'имя вашего файла'
Так же снова можно добавить флак -F , что бы всё было приятно и красиво, в итоге команда получается такая:
pyinstaller -F -i 'путь к иконке' 'имя вашего файла'
Путь к иконке прописывать в » , а к файлу без » .
Если у Вас остались какие-то вопросы или появились ошибки, то прошу в комментарии. Спасибо за то, что дочитали до конца.
Всех благ
