Компиляция Python в EXE? | Nuitka, Pyinstaller, InnoSetup

แชร์
ฝัง
  • เผยแพร่เมื่อ 30 มิ.ย. 2024
  • В этом видео я покажу, как из своего Python проекта сделать Exe файл.
    Реализуем это разными способами, сравним производительность и размеры получившихся файлов. Будем использовать Nuitka & PyInstaller. Приятного просмотра!
    Nuitka Docs - nuitka.net/
    Nuitka GitHub - github.com/Nuitka/Nuitka
    PyInstaller Docs - pyinstaller.org/en/stable/
    PyInstaller GitHub - github.com/pyinstaller/pyinst...
    InnoSetup: jrsoftware.org/isinfo.php
    /****************** Social ******************/
    Залетай 👇- там много дополнительного оперативного контента
    GitHub: github.com/BaggerFast
    Discord: / discord
    Telegram (канал): t.me/+9q9He9b9ocJhOTEy
    Telegram (группа): t.me/+C7opXMjqDlI5YzNi
    /****************** Video ******************/
    0:00 Приветствие
    0:30 Компиляция Nuitka
    2:34 Компиляция PyInstaller
    3:22 Nuitka or PyInstaller?
    3:37 Cоздание установщика
    5:44 Конец
    /******************Other******************/
    Музыка из видео: MKR - Midnight Blue
    #pythontutorial #python3 #pythonprojects #pythonforbeginners #python_assignment #programming #пайтон #питон #программирование
  • วิทยาศาสตร์และเทคโนโลยี

ความคิดเห็น • 33

  • @MEZHGANO
    @MEZHGANO ปีที่แล้ว +3

    Супер, спасибо)
    Немного критики: перебивки черным экраном при перечислении атрибутов команды nuitka похожи больше на глюк, чем монтажное решение

  • @5gugorsky
    @5gugorsky ปีที่แล้ว

    Пользую auto-py-to-exe в связке с InstallForge. В последней не надо подпапки прописывать, только папки и файлы, деинсталлятор тоже есть и ярлыки в меню пуск и рабочий стол. В целом доволен. Нуитку слышал, но ещё не пробывал))

  • @vards2020
    @vards2020 17 วันที่ผ่านมา +1

    "Не удается продолжить выполнение кода, поскольку система не
    обнаружила python311.dll. Для устранения этой проблемы
    попробуйте переустановить программу." вылазиет при компиляции через Nuitka. Как исправить?

  • @diamonddump
    @diamonddump 5 หลายเดือนก่อน

    чувак, ты нереально крутой и очень помог мне. Пайинсталлер нереально плох, мой текущий проект запускается за 10 сек на любом пк, и любой антивирус из-за специфики его работы сигнализирует на троян. Нуитка и установщик сделали меня в два раза более опытным программистом, делающим качественные продукты, спасибо тебе.

  • @kassowary1429
    @kassowary1429 ปีที่แล้ว

    А что делать, если при использовании Nuitka мне пишет: no installer needed cached one time question, и коомпиляция заканчивается?

  • @muxammederaiev733
    @muxammederaiev733 ปีที่แล้ว

    Классное видео . А если отправить ехе из нуитки , и отправить на другой комп там откроется?

  • @nikd1ssv
    @nikd1ssv ปีที่แล้ว +4

    Если без --onefile (-F) собирать через pyinstaller, создастся папка, в ней main.exe, его и надо запускать, можно создать ярлык через тот же установщик (я использую Smart Install Maker), запуск будет быстрее (без лишних распаковок во временную папку), если вам кажется что ваше приложение через pyinstaller долго стартует, лучше делать именно так, там и data_files (звуки, спрайты) туда же поместятся.
    Правда такая папка будет весить чуть больше одиночного exe'шника, т.к в одиночный exe'шник хранит всё сжатое (upx), а в папке ничего не по сжимаешь (но это тоже ускоряет запуск).
    Nuitka я бы вообще не пользовался, когда у вас полезут проблемы с зависимостями или dll'ками, тоже желание отпадёт, но нуитка вроде это фиксит, я им давно не пользовался; да и нуитка вроде быстрее работает; вердикт: на не крупных проектах нуитка - то что надо; иначе, если всякие проблемы будут, то pyinstaller.

    • @baggerfast
      @baggerfast  ปีที่แล้ว +1

      Спасибо, за такую полезную информацию)

  • @catnorm1708
    @catnorm1708 3 หลายเดือนก่อน

    А как можно обновить код?

  • @bolatmukashev2830
    @bolatmukashev2830 ปีที่แล้ว

    Создаю exe файл через pyinstaller на win10 64bit. Не запускается на win8 32bit. Если возможность создать файл который будет запускаться на любых версиях ос windows?

    • @nikrik01
      @nikrik01 2 หลายเดือนก่อน

      Пропиши в терминале python, где ты "компилируешь" проект
      >>> import sys
      >>> sys.version
      если он напишет в конце что то типо "64 bit (AMD64)"
      то ты используешь питон 64 бита, поздравляю, он по умолчанию не поддерживает 32 битные ОС

  • @siriusgames_
    @siriusgames_ ปีที่แล้ว +2

    А как с помощью Nuitka или PyInstaller добавить в проект спрайты/фото/видео

    • @baggerfast
      @baggerfast  ปีที่แล้ว

      Для этого существуют установщики, а так чисто теоретически можно через pyinstaller попробывать, но это не лучшая идея. А конце видео я показал работу с установщиком, где я добавлял именно спрайты и звуки

    • @siriusgames_
      @siriusgames_ ปีที่แล้ว +1

      @@baggerfast Например, чтобы при запуске файла создавалась папка с файлами по определенном пути и после закрытия удалялась

    • @baggerfast
      @baggerfast  ปีที่แล้ว

      Если прям очень хочется, то в pyinstaller, как раз реализован такой подход. Он создает в папке темп твой проект и запускает, после закрытия удаляет. Сторонние файлы , тоже можно в exe добавить. Но способ с установщиком, куда более приятный)

    • @siriusgames_
      @siriusgames_ ปีที่แล้ว

      @@baggerfast Только я никак не могу понять как использовать этот код:
      def resource_path(relative_path):
      """ Get absolute path to resource, works for dev and for PyInstaller """
      if getattr(sys, 'frozen', False):
      base_path = sys._MEIPASS
      else:
      base_path = os.getcwd()
      return os.path.join(base_path, relative_path)
      Он нужен чтобы создавалась временная папка, но у меня это не выходит

    • @baggerfast
      @baggerfast  ปีที่แล้ว

      @@siriusgames_ попробуй через pypi.org/project/auto-py-to-exe/ - это pyinstaller ток с интерфейсом. Новичкам там легче ориентироваться, сразу поймёшь)

  • @MrNarutorengun
    @MrNarutorengun ปีที่แล้ว

    2:55 ещё как стоит, там неправильно код написан в подсказке
    "python -m PyInstaller"
    Если писать pyinstaller с маленькой буквы, то ошибка вылетает
    P.S. NUITKA на python 3.11 отказывается переваривать указанные тобой флаги, говоря что не знает что это. Возможно из-за версии питона

    • @baggerfast
      @baggerfast  ปีที่แล้ว

      На 3.10 все работает, и то возможны сбои. Не все пакеты адаптируются на новые версии языка

  • @ar3love474
    @ar3love474 หลายเดือนก่อน

    Вот ты сказал 1-2 минуты ахах, я уже 20 минут сижу, третий раз видос просммтриваю 4328/4514 и все увеличивается

  • @user-ev8tr5fh1o
    @user-ev8tr5fh1o ปีที่แล้ว

    Ускоряет программу процентов на 20-30%. JIT-компиляторы Numba и PyPy дают несравнимо более существенный прирост производительности, в десятки, а то и сотни раз. Достаточно посмотреть, какой код на Си генерирует Nuitka - это не эквивалент программы на языке Си (эквивалентная программа на Си длиннее раза в 1.5-2), а какая-то огромная кишка из невнятного индусского кода, схематическое повторение функциональных структур интерпретатора CPython.
    Nuitka это пока лучшее что есть, до этого приходилось тупо упаковывать в исполняемые файлы интерпретатор и библиотеки целиком, но полноценным, нормальным, здоровым компилятором это не является.

  • @miniposter2708
    @miniposter2708 2 หลายเดือนก่อน

    Nuitka - 'это полное гавно, полтора-2 часа на компиляцию уходит на 1 файл из сотни строк

    • @baggerfast
      @baggerfast  2 หลายเดือนก่อน

      У меня как хорошо, крупный проект быстро собрался

  • @DDD1234AAA1
    @DDD1234AAA1 6 หลายเดือนก่อน

    Что делать если говорит что у меня вирус/нежелательная программа, хоть у меня просто текст. строка - pyinstaller --onefile --icon=icon.ico main.py

    • @No_bonoko
      @No_bonoko 3 หลายเดือนก่อน

      Нашли решение?

    • @user-nk4ni9kg1i
      @user-nk4ni9kg1i 29 วันที่ผ่านมา

      ​@@No_bonokoэто особенность pyinstaller, там всегда так будет т.к он не компилирует а копирует в temp и антивирус думает что это вирус, используй nuitka