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

Обновлено: 06.07.2024

К сожалению не на всех компьютерах с ОС Windows по умолчанию установлен интерпретатор Python. Поэтому, чтобы ваша программа запустилась на любом компьютере, необходимо её упаковать в исполняемый .exe файл.

Для решения поставленной задачи существует несколько инструментов. Ранее был популярен инструмент py2exe, но в настоящий момент он не поддерживается и доступен только для второй версии Python.

1. Инструмент cx_Freeze

Таким образом, в данной статье будет описан успешный опыт использования инструмента cx_Freeze. Он актуален, поддерживает как Python 2, так и Python 3, и вообще, от его использования остались только положительные эмоции.

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

2. Скрипт для упаковки

Типичный скрип достаточно прост и имеет следующий вид (можно сохранить в командный файл .cmd или .bat, либо запустить из консоли):

Данный скрипт написан с учётом того, что путь к python.exe прописан в Path. Всё достаточно очевидно. Вызывается скрипт cxfreeze, которому в качестве параметра передаётся только файл, содержащий точку входа в приложение (в данном случае program.py), всё остальное подтянется автоматически. Параметр --base-name Win32GUI указывает, что это приложение с графическим интерфейсом и благодаря этому не отображается консоль при работе программы. --target-dir указывает в какую папку поместить полученные файлы, -ОО - оптимизация, а --icon=icon.ico путь к иконке для приложения.

В результате выполнения скрипта будет получен файл program.exe и и ещё целая куча вместе с ним в указанной папке. Единственный минус, что программа может выйти сравнительно объёмной (раза в 4 больше, чем аналогичная на C++).

Чтобы упаковать консольную программу нужно просто убрать параметр --base-name Win32GUI. О дополнительных командах и возможностях можно узнать на официальном сайте cx_Freeze.

Она просто ничего не делает, там окно, оно открыто.
Эта программа написана с исп. фреймворка PyQt.
Как добавить туда иконку эту:

просто чтобы была слева вверху как иконка программы.

И после этого как сделать файл .exe чтобы когда кликаешь на него в итоге открывается окно как и было + кошка в иконке?

Я пробовал через py2exe, но кошки нет. (

__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь

Как добавить иконку к exe файлу в cx_Freeze?
Подскажите пожалуйста как и в каком месте нужно указать путь к ico в файле setup.py при создании.

Python 3 + PyQt 4 -> exe
Тема избитая, но ошибка не понятная. cx_Freeze не может собрать exe'шник с PyQt4. Без него собирает.


Можно ли на PyQt сделать веб браузер
Можно ли на PyQt сделать веб браузер?

PYQT 5. Сделать диалоговое окно при клике на кнопку
Здравствуйте. Есть форма регистрации. Нужно, что бы после подтверждения регистрации ( клика на.

P.S.
Можно также использовать PyQt 4 -4.11.4 , а не 5?

Это ни как к делу не относится, от слова вообще прям.

Тебе копать в сторону сборщиков в exe надо (cx-freeze, py2exe и т д), но вообще упаковка в exe это порнография полная.

alex925, а что мне тогда постоянно запускать через cmd?
На .exe два раза кликнул, а cmd открыть вписать pytnon my_app.py это сложнее и дольше.
То есть если я хочу свою прогу написать она вечно должна будет запускаться через cmd? А если человек тупой и просто не знает, как запустить прогу через cmd, а просто хочет использовать ее?

Добавлено через 1 минуту
Anki, Eric IDE, Jabbim написаны на Python, но они же .exe.
Я тоже так хочу.

Ninec, вообще, типичный способ запуска питоновских программ - это, действительно, так:
То есть если я хочу свою прогу написать она вечно должна будет запускаться через cmd?

А при чём тут cmd? Он совершенно необязателен.

А если человек тупой и просто не знает, как запустить прогу через cmd, а просто хочет использовать ее?

Можно сделать ему bat-ник. Можно ярлык. Способы есть.

Добавлено через 3 минуты
Сборку в exe используют в некоторых, довольно специфичных случаях. Думаю, ты с ними пока не столкнулся.

После установки, открой cmd и напиши:

pyinstaller -F -w -i=your_ico.ico myfile.py

-F чтобы все было в 1 экзешник упаковано, -w чтобы окно консоли не выскакивало, -i = пусть и имя иконки и в конце имя .py

Будут 2 папки, в distr будет твой экзешник.

Можно сделать ему bat-ник. Можно ярлык. Способы есть.
Добавлено через 3 минуты
Сборку в exe используют в некоторых, довольно специфичных случаях. Думаю, ты с ними пока не столкнулся.

Я просто хочу сделать мою программу Portable.
Чтобы человек, у которого нет компилятора Python на компьютере мог ее запустить.

Архив со всеми файлами .py, где были ошибки +.py файл проги.
В тех строках ругается на Module, а модуль там и вовсе же не прописан. Я просто хочу сделать мою программу Portable.
Чтобы человек, у которого нет компилятора Python на компьютере мог ее запустить.

Чиста, чтобы разобраться с терминологией.
Ехе - это программа, скомпилированная в машинные коды.
Portable - это программа, которая запускается и работает без дополнительной процедуры инсталляции.

Обязательно ли для portable-программы быть ехе? Очевидно, нет. Можно запустить и в виде обычного питоновского скрипта.
Чтобы программу запустил человек, у которого нет Питона на компе - надо таскать интерпретатор Питона с собой. В любом случае, и с exe, и без него, никуда не денешься.
Просто PyInstaller и т. п. запихивает интерпретатор в exe. На объём инстальника это не повлияет, всё равно большой будет.
А вот лишние сложности создаст.

Как в PyQt сделать так, чтобы код выполнился через определенное время?
Всем привет! Как в PyQt использовать таймер? этот код не работает: from PyQt5.QtCore import.

Изменить иконку exe
Всем доброго времени суток. Прошу поделиться опытом. Как можно программно изменить иконку exe, без.

Установить иконку .exe-файлу
Привет, как в проекте установить иконку .exe-файлу ? IDE Code-Blocks

Изменить иконку у чужого Exe
Стул плавится. мозги тоже. Вообщем хочу изменить иконку у чужого Exe. нашел модуль, исправил.

1609748634494.jpg


Для начала нам необходимо иметь 2 установленные библиотеки: 'wheel', 'pyinstaller'.
Для того что бы их установить, пропишем в консоль:

pip install wheel

1609748651697.jpg


pip install pyinstaller

ПРОШУ ОБРАТИТЬ ВНИМАНИЕ В КАКОМ ПРОДЯКЕ Я ПРОПИСЫВАЮ БИБЛИОТЕКИ! БЕЗ БИБЛИОТЕКИ 'wheel' НЕ БУДЕТ УСТАНОВЛЕН 'pyinstaller'!

Переходим ко второй фазе:
1. Нам нужно определиться .Как именно мы будет компилировать (с логотипом или без)
Если мы хотим компилировать в exe без иконки, то мы прописываем
pyinstaller -F НАЗВАНИЕ_ФАЙЛА.py
Хотелось бы немного пояснить. Флаг 'F' обозначает то, что мы будем компилировать все наши библиотеки и весь проект в 1 исполняемый файл, мы так же можем сделать и без этого флага, но нам это не интересно.
2. Теперь мы будем компилировать с нашей иконкой.
Хочу заранее сказать, нам потребуется формат иконки .ico (В footer'e оставлю ссылочки на сайт конвертации.)
Для того что бы скомпилировать вместе с нашей иконкой, необходимо прописать следующую команду:
pyinstaller --onefile --icon=НАЗВАНИЕ_ИКОНКИ.ico НАЗВАНИЕ_ФАЙЛА.py
Снова небольшие пояснения. Флаг 'onefile' это тот же флаг 'F', но теперь я решил рассмотреть с вами другую возможность его использования.
Флаг "ICON" обозначает то, что мы будем использовать пользовательский ярлык на исполняемый файл.
ПРОШУ ЗАМЕТИТЬ, ЕСЛИ ПОСЛЕ КОМАНДЫ ВСЕ СКОМПИЛИРОВАЛОСЬ, НО ФАЙЛ СО СТАНДАРТНОЙ ИКОНКОЙ. ЭТО КЭШ ВИНДОВС! НА САМОМ ДЕЛЕ У ВАС ВСЕ ЗАМЕНИЛОСЬ, ВЫ МОЖЕТЕ ПРОВЕРИТЬ ЭТО, КЛИКНУВ ПКМ => СВОЙСТВА

Ну вот мы и рассмотрели 2 возможности компиляции через pyinstaller!
Всем кто прочитал, спасибо! Желаю вам счастья в новом году.

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

Поскольку пайтон интерпретируемый язык программирования скомпилировать его в единый файл проблематично. Но не невозможно.

Для решения этой проблемы пайтон-разработчики идут на хитрость: в пакет программы "копируют" интерпретатор пайтон. Однако сделать это нужно правильно. И для этой цели обычно используют либо библиотеку pyinstaller , либо cx_freeze.

Pyinstaller позволяет упаковать программу чуть ли не в 2 клика. Однако если у вас есть дополнительные файлы, либо вы импортировали дополнительные библиотеки, скорее всего, pyinstaller не сможет их найти и у вас ничего не получится.

Поэтому я советую для сложных приложений использовать cx_freeze. И сразу скажу, все не так страшно, как может показаться. Мне удавалось запаковать игры с музыкой, картинками и все работало. Работаю я в Windows, а документацию библиотеки смотри здесь .

Шаг 1.Установка библиотеки cx_Freeze

Устанавливаем библиотеку cx_Freeze с помощью pip.

Вводим в командной строке:

Если появляется ошибка, то попробуйте добавить флаг --user.

Шаг 2. Напишем код, который запакует нашу программу.

В пакете нашей программы создаем файл с названием setup.py, в которую вписываем код, который запакует нашу программу. У меня была игра, и код компилятора выглядел так:

from cx_Freeze import setup, Executable

Шаг 3. Корректируем код

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

Конвертировать иконку можно здесь .

В includes и zip_include_packages мы указываем те модули, которые мы использовали, чтобы python не забыл их запаковать.

В include_files мы указываем путь ко всем дополнительным файлам, которое использует наше приложение. Если у вас иерархия папок, а не все файлы скопом лежат в одной, то не забудьте в пути это указать.

В функции options ничего не исправляем.

В setup исправляем name - указываем имя главного файла, в version - версию приложения, а в description - описание приложения.

Ошибка с шрифтами

Шаг 3. Запаковываем.

Выполним запаковку, вбив в командную строку следующее:

У вас должен появиться файл build_windows. Это и есть наш итоговый пакет программы, который мы сможем распространять. Здесь же мы найдем файл .exe, запускающий нашу программу. Для него, например, можно создать ярлык и закинуть его на рабочий стол.

Возможные ошибки.

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

Надеюсь у вас все получилось, а если нет, обязательно напишите об этом. И я постараюсь вам помочь.

Читайте также: