R
Rettz3. Dezember 2019 14:34

PyQt5 компиляция с помощью Nuitka : out of memory exception

Добрый день! При компиляции проекта на PyQt5 с помощью Nuitka вылезает ошибка cc1plus.exe: out of memory allocating 65000 bytes

Прочитал что для c++ эту ошибку можно пофиксить добавлением в .pro файла флага CONFIG += resources_big, но это справедливо для C и qmake, вопрос, как то же самое реализовать для Python 3.7 и PyQt5 поставленный через pip

Рекомендуємо хостинг TIMEWEB
Рекомендуємо хостинг TIMEWEB
Stabiles Hosting des sozialen Netzwerks EVILEG. Wir empfehlen VDS-Hosting für Django-Projekte.

Magst du es? In sozialen Netzwerken teilen!

5
МП
  • 4. Dezember 2019 00:44

CONFIG += resources_big
это недокументированный хак. Подключайте большие ресурсы динамически. Например, используя https://doc.qt.io/qt-5/rcc.html

    R
    • 4. Dezember 2019 04:37

    Да, но если этот ресурс является самим модулем (.py) файлом, а не внешним (картинка или что-нибудь еще), Nuitka сама транформирует этот модуль в .cpp и в .o файл, и как раз в .o файле происхлдит переполнение. Я подозреваю что это происхлдит из за переполнения кпкой нибудь строковой переменной внутри кода или массива, но отдельно подключить объект такого типа вручную (или как то подсказать Nuitke как это сделать) это и есть вопрос собственно

      V
      • 4. Dezember 2019 06:12
      • (bearbeitet)

      Заранее извиняюсь, что не совсем по теме и с непрошенным советом :-)

      Где-то с полгода назад я искал вариант создания инсталятора для standalone приложения на python с тучей зависимостей, в т.ч. и PyQt5. Моё мнение: Nuitka действительно интересный проект, но очень сырой и вытаскивающий только приложения уровня чуть выше HelloWorld, но никак не серьезные продукты.
      Я смотрел и другие варианты, но в итоге остановился на связке PyInstaller + QtIFW.

        R
        • 4. Dezember 2019 06:46

        Да без проблем, буду рад любым советам, по поводу сборки PyInstaller`ом: пробовал и py2exe и cxFreeze и PyInstaller, во всех них одна проблема, а именно при сборке в единый exe файл, приложения на не очень мощных компах очень долго запускаются (именно приложения на PyQT) т.к. собирая все зависимости в один exe винде требуется время чтобы распаковать все зависимости во временную папку и подцепить их (а Qt очень "тяжелый фреймворк") следовательно на это требуется очень много времени (порядка 8-10 секунд на слабых ноутах), при сборке в --one-dir мод в PyInstaller ситуация улучшается, но все равно приложение запускается не за секунду, а за 2-3, по поводу QtlFW нечего сказать, почитаю, попробую (Требуется именно сборка Python3.7+PyQt5 standalone под винду)

          V
          • 4. Dezember 2019 07:02

          Со временем распаковки соласен - для слабых ноутов это проблема и именно Nuitka мог бы здесь помочь, если бы заработало.
          А QtlFW - это уже фреймфорк для создания инсталятора из имеющихся пакета(ов), в т.ч. с возможностью подгрузки пакетов и их обновлений онлайн, а не упаковщик. Но мне именно так и надо было.

            Kommentare

            Nur autorisierte Benutzer können Kommentare posten.
            Bitte Anmelden oder Registrieren
            Letzte Kommentare
            ИМ
            Игорь Максимов5. Oktober 2024 07:51
            Django – Lektion 064. So schreiben Sie eine Python-Markdown-Erweiterung Приветствую Евгений! У меня вопрос. Можно ли вставлять свои классы в разметку редактора markdown? Допустим имея стандартную разметку: <ul> <li></li> <li></l…
            d
            dblas55. Juli 2024 11:02
            QML - Lektion 016. SQLite-Datenbank und das Arbeiten damit in QML Qt Здравствуйте, возникает такая проблема (я новичок): ApplicationWindow неизвестный элемент. (М300) для TextField и Button аналогично. Могу предположить, что из-за более новой верси…
            k
            kmssr8. Februar 2024 18:43
            Qt Linux - Lektion 001. Autorun Qt-Anwendung unter Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
            Qt WinAPI - Lektion 007. Arbeiten mit ICMP-Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
            EVA
            EVA25. Dezember 2023 10:30
            Boost - statisches Verknüpfen im CMake-Projekt unter Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
            Jetzt im Forum diskutieren
            J
            JacobFib17. Oktober 2024 03:27
            добавить qlineseries в функции Пользователь может получить любые разъяснения по интересующим вопросам, касающимся обработки его персональных данных, обратившись к Оператору с помощью электронной почты https://topdecorpro.ru…
            JW
            Jhon Wick1. Oktober 2024 15:52
            Indian Food Restaurant In Columbus OH| Layla’s Kitchen Indian Restaurant If you're looking for a truly authentic https://www.laylaskitchenrestaurantohio.com/ , Layla’s Kitchen Indian Restaurant is your go-to destination. Located at 6152 Cleveland Ave, Colu…
            КГ
            Кирилл Гусарев27. September 2024 09:09
            Не запускается программа на Qt: точка входа в процедуру не найдена в библиотеке DLL Написал программу на C++ Qt в Qt Creator, сбилдил Release с помощью MinGW 64-bit, бинарнику напихал dll-ки с помощью windeployqt.exe. При попытке запуска моей сбилженной программы выдаёт три оши…
            F
            Fynjy22. Juli 2024 04:15
            при создании qml проекта Kits есть но недоступны для выбора Поставил Qt Creator 11.0.2. Qt 6.4.3 При создании проекта Qml не могу выбрать Kits, они все недоступны, хотя настроены и при создании обычного Qt Widget приложения их можно выбрать. В чем может …

            Folgen Sie uns in sozialen Netzwerken