Форум программистов, компьютерный форум, киберфорум
Python: IDE, инструментарий
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/75: Рейтинг темы: голосов - 75, средняя оценка - 4.60
Заблокирован

Nuitka создание exe

31.07.2021, 22:56. Показов 15902. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет, есть проект на питоне, состоящий из нескольких файлов (условно file1.py, file2.py, file3.py). Хочу собрать из них 1 .exe с помощью Nuitka, установить на него иконку, чтобы им можно было воспользоваться на любом ПК без установки питона и всех библиотек. В PyInstaller все просто pyinstaller -n name -i logo.ico --onefile file1.py file2.py file3.py
В документации не разобрался, может, кто подскажет, с onefile и standalone не получилось, скорее всего что-то делаю не так.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.07.2021, 22:56
Ответы с готовыми решениями:

Как с помущью nuitka py перевести в exe, который открывается без консоли
Я написал программу на python с помощью kivy и в exe версии консоль не нужна, как её скрыть? В pyinstaller можно указать флаг, чтобы...

Как установить Nuitka?
Хотел поставить вот это, не получилось, но с причинами сильно не разбирался, есть у кого нибудь опыт работы с Нуиткой? (Заявлена...

Использование Nuitka в Windows OS
Собственно вопрос как её использовать? (или как ей пользоваться в windows) Скачал Stable Packages...

6
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
31.07.2021, 23:01
super_user123, начинаем читать Правильный способ
НЕ совсем павильный way

Добавлено через 33 секунды
Цитата Сообщение от super_user123 Посмотреть сообщение
В документации не разобрался
Почему же?
0
0 / 0 / 0
Регистрация: 22.05.2021
Сообщений: 10
31.07.2021, 23:04
Dax, тут, кажется, попросили помочь, а не сотрясать воздух. Спросили, как с помощью nuitka собрать exe, или ты не разглядел?
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
31.07.2021, 23:11
Ebelex, я все разглядел, но, помочь!= создать за ТС(тем более - не имея исходного кода)
Потому, читаем и вникаем вместе
0
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
31.07.2021, 23:13
Ebelex, На заметку
2
Эксперт Python
1356 / 653 / 207
Регистрация: 23.03.2014
Сообщений: 3,057
31.07.2021, 23:33
super_user123, Вам нужна строка, введенная в терминале
Code
1
nuitka --recurse-all program.py
Читано тут
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
01.08.2021, 19:33
Цитата Сообщение от Dax Посмотреть сообщение
--recurse-all program.py
Это устаревшая опция. Ее больше нет.
----------------------------------------------------------------
И для всех: Что такое nuitka? Это не компилятор.
Это транспайлер (транспилятор) Python (подмножества?) кода в Си\С++. Компилировать код будет стандартный Си\С++ компилятор gcc (или msvc). Если у вас не установлен - скачает. Почти 2Gb.
И транспайлинг делается, в основном, только для вашего кода (если запускать без опций).

Есть опция --stdlib, которая как будто бы должна транспайлить еще и стандартную библиотеку Python. Не увидел разницы с запуском без опций вообще. Надо разбираться.

Есть опция --follow-imports для транспайлинга всех файлов вашего проекта. Пока не пробовал использовать на многофайловым проекте.
Написано, что она по дефолту для опции --standalone.

Некоторый предварительный вердикт:
1) При сборке без опций exe-шник будет по-прежнему зависеть от установленного Python.
2) если собирать с опцией --standalone, вместе с exe-шником в каталог dist (ничего не напоминает?) будут скопированы Python pyd либы, python3x.dll), некоторые системные dll и т.д. То есть получается как бы Portable сборка. Но не факт... Менеджер зависимостей у nuika вовсе не лучше чем у pyinstaller. И, скорей всего, придется вручную (через другие опции) указывать nuitke дополнительные необходимые зависимости.
Я импортировал в коде модуль collections (для использования Counter), но в каталог dist он cкопирован не был.
Каковая вероятность, что этот exe запустится на другом компе?

3) И да... ​c опцией --onefile она как бы создает тот самый самый долгожданный для школьников (потому что реальные питонисты уже давно знают, что раз для Python нет изначально родного компилятора в машинный код, то и нефиг баловаться) как бы автономный exe.
На самом деле она пытается запихнуть в exe все (или как получится) зависимости, точно также как это делает pyinstaller. И, как написано в доках, это точно также будет распаковываться во временный каталог при запуске.
On Windows, there are two modes, one which is copying it to the AppData of your company specified, to also use it as a cache, and one which does it in the temporary directory.

Размерчик выходного "hello world" - 25mb. Как раз совпадает с размером каталога dist, куда копируются все (или как получится) зависимости.
И у меня этот exe даже не запустился.

Update.
Чтобы сработала опция --stdlib скрипт должен импортировать хотя бы одну Python библиотеку.
Запустил nuitka заново на скрипте, где используется collections.
Полчаса транспайлинга и компиляции всех (?ли) Python библиотек.
Выходной файл: 46mb. Запускаю... и опять fail. Длинное полотно состоящее из этого:
Code
1
2
3
4
  File "<frozen importlib._bootstrap>", line 988, in _find_and_load
  File "<frozen importlib._bootstrap>", line 148, in __enter__
  File "<frozen importlib._bootstrap>", line 163, in _get_module_lock
RecursionError: maximum recursion depth exceeded while calling a Python object
Попытка дополнить опцию --stdlib опцией --standalone, чтобы получить Portable сборку не увенчалась успехом.
Exe-шник (размер 1.5 mb) как всегда скомпилирован, но падает с какой-то банальной ошибкой: ModuleNotFoundError: No module named 'site'.

Добавлено через 10 минут
P.S. Думаю, cтоит перенести эту тему в раздел Инструментарий.
3
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
01.08.2021, 19:33
Помогаю со студенческими работами здесь

Как скомпилировать код через nuitka?
Как скомпилировать код через nuitka так что бы после запуска .exe файла консоль не появлялась?

Компиляция файла py в исполняемый файл с Nuitka
В учебных материалах сообщают, что надо установить компилятор MinGW. В то же время на сайте Nuitka...

Как создать в Nuitka 32бит программу?
Всем привет!Столкнулся с проблемой в nuitka,мне нужно создать 32 битный екзешник изпользовал эту комманду: python -m nuitka...

Nuitka создает исполняемый файл, но не работает русская кодировка
Здравствуйте. Понадобилась производительность питона. Воспользовался Nuitka. Удобно то, что она переводит питон-текст в Cи язык, а потом...

Не запускаются AVZ. exe, CCleaner. exe, AutoLogger. exe, regedit. exe. Словил вирус bizigames
Доброго времени суток. Захотел я почистить комп от мусора всякого при помощи CCleaner, как не тут-то было. В общем, .exeшники...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru