Как скомпилировать python в exe файл без консоли
Перейти к содержимому

Как скомпилировать python в exe файл без консоли

  • автор:

Компиляция программы на 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
  • Реклама на сайте

Как сделать exe файл python без консоли?

как сделать exe файл python без консоли?/
Написал файл, перевёл в .exe, при запуске, запускается консоль, как сделать, чтобы её не было
Вот как перевел в .exe:
pyinstaller --onefile --icon=icon.ico main.py

  • Вопрос задан более года назад
  • 547 просмотров

Комментировать

Решения вопроса 1

RiderMC @RiderMC Автор вопроса

Всё, разобрался, нужно сделать тоже самое, только не 'main.py', а 'main.pyw'

Ответ написан более года назад

Комментировать

Нравится Комментировать

Ответы на вопрос 1

you don't choose c++. It chooses you

Могу порекомендовать это.
https://pypi.org/project/auto-py-to-exe/
В интерфейсе нужно выбрать не Console based, а Window

Ответ написан более года назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

python

  • Python
  • +3 ещё

В боте когда я меняю переменую many += 1 выводиться ошибка?

  • 1 подписчик
  • 12 минут назад
  • 9 просмотров

Как превратить скрипт.py в программу.exe

Аватарка пользователя Елена Капаца

В статье рассмотрим, как работает превращение файла .py в программу .exe с помощью PyInstaller.

Обложка поста Как превратить скрипт.py в программу.exe

Как только первая полноценная программа выходит из-под клавиатуры, ей хочется похвастать, не так ли? Но потенциальные пользователи вряд ли захотят устанавливать себе IDE и все зависимости — это долго и муторно. Чтобы упростить им задачу и показать программу большему числу людей, создатели языка продумали, как сделать из кода исполняемую операционкой программу. Превращение в файла .py в .exe обычно делается с помощью PyInstaller, py2exe или cx_Freeze. Посмотрим, как работает PyInstaller:

Установка

Вы можете сделать это с помощью pip. Откройте командную строку и введите:

pip3 install pyinstaller

Как превратить скрипт.py в программу.exe 1

Я использую простейший скрипт, который экспортирует константный датафрейм в файл.csv:

import pandas as pd

df = pd.DataFrame(data, columns=['Numbers'])

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

До сих пор бывает, что библиотека ставится без «проваливания» в выделенную виртуальную среду и потом не запускается. Так что для порядка на вашем ПК рекомендую проводить такой эксперимент после запуска следующих команд:

python3 -m venv sample_env

Впрочем, в этот раз обошлось без проблем и PyInstaller заработал.

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

Перейдите в каталог со скриптом Python, который хотите преобразовать в .exe. Используйте команду cd для перехода в нужную директорию. Например:

Уже в директории, вы можете запустить PyInstaller и преобразовать скрипт Python в .exe. Если скрипт называется my_script.py , введите:

python3 -m PyInstaller my_script.py

Как превратить скрипт.py в программу.exe 2

Как превратить скрипт.py в программу.exe 3

Это создаст .exe-файл в поддиректории dist . Чтобы программа стала одним .exe-файлом, добавьте флаг --onefile :

python3 -m PyInstaller --onefile my_script.py

Вывод у процесса получился избыточный, так что если вы не хотите видеть консоль при выполнении программы, добавьте флаг --noconsole :

pyinstaller --onefile --noconsole my_script.py

В результате рядом с py-скриптом ляжет директория, где в подпапке build будет лежать искомый исполняемый файл Unix (.exe):

Как превратить скрипт.py в программу.exe 4

Я работаю на macOS, однако всё равно могу запустить такой файл с помощью Терминала. Двойным щелчком запускаем my_script и получаем уведомление об исполнении программы:

Как превратить скрипт.py в программу.exe 5

Поскольку конечный путь не был указан, то выходной csv-файл просто лёг в стартовую директорию системы:

Как превратить скрипт.py в программу.exe 6

Обратите внимание, что при использовании PyInstaller все зависимости Python-скрипта должны быть установлены на вашем компьютере. И все используемые модули Python должны быть совместимы с PyInstaller.

Такой маленький шаг — прекрасный способ добавить себе уверенности как разработчику. Если вы все еще испытываете трудности с основами языка, попробуйте курс Result School по основам программирования. С промокодом TPROGER60 вы получите скидку 60%.

Если вы пробовали PyInstaller или аналоги, то какую программу экспортировали? Расскажите свою историю в комментариях.

как убрать консоль при открытии преобразованного в .exe python файла?

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

Лучший ответ

короче, допустим твой файл называется main.py
pyinstaller -F -w main.py
флаг -F делает процесс удобным, а флаг -w убирает консоль
заходи в папку dist и забирай свой файл БЕЗ консоли

Остальные ответы
Попробуйте проделать все тоже самое только с исходником в формате *.pyw

надо дописать ключ --noconsole

python pyinstaller.py --noconsole yourscript.py

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

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