Uploaded image for project: 'Qt for Python'
  1. Qt for Python
  2. PYSIDE-642

Make PyInstaller deployed applications work

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • None
    • 5.6, 5.9
    • PySide

    Description

      So for various reasons, PyInstaller deployed PySide2 applications can fail to run on our supported operating systems.

      One existing patch which is hopefully a step forward to fix this is https://codereview.qt-project.org/#/c/226543/ which allows using a qt.conf file to specify where the various bits of Qt are located relative to the deployed application folder.

      A non-exhaustive list of things failing:

      • QtWebEngine example failures due to
        • Unable to find QtWebEngineProcess executable
        • Unable to find icu data
        • Unable to find resources
        • Unable to find translations
      • Not copying xcb gl integrations plugins on Linux
      • PATH issues on Windows (should be addressed by https://codereview.qt-project.org/#/c/225933/2 )

      WebEngine issues are different on different platforms:

      • On macOS there seems to be no distinction currently between which files need to be copied in a framework vs non-framework build
      • On macOS the problem with finding the QtWebEngineProcess stems from hardcoding the search via a bundle identifier, which seems not to be kept by the PyInstaller process when copying libraries. The following change addresses the hardcoding https://codereview.qt-project.org/#/c/226346/ in QtWebEngine itself.
      • On Linux not all NSS libraries seem to be copied, resulting in failures on WebEngine startup.
      • On Linux the xcb gl integrations plugins are not copied
      • iirc on all platforms the resources, translations, process executable were not copied

      Outlines of what probably needs to be done:

      • possibly change pyinstaller code to write a qt.conf file instead of using using QtCoreApplication::setLibraryPaths in PyInstaller/loader/rthooks/pyi_rth_qt5plugins.py
      • make sure that all required files are copied over on the various platform configs (plugins, translations, resources, libexec)
      • figure out what needs to be changed for PySide2 given the merge of
        https://github.com/pyinstaller/pyinstaller/pull/3233/files which is not yet released at the time of creation of this issue.

      Attachments

        Issue Links

          For Gerrit Dashboard: PYSIDE-642
          # Subject Branch Project Status CR V

          Activity

            People

              Unassigned Unassigned
              alexandru.croitor Alexandru Croitor
              Votes:
              7 Vote for this issue
              Watchers:
              11 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes