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

Make PyInstaller deployed applications work

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Reported
    • Priority: P2: Important
    • Resolution: Unresolved
    • Affects Version/s: 5.6, 5.9, dev
    • Fix Version/s: None
    • Component/s: PySide
    • Labels:

      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

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            Activity

              People

              • Assignee:
                alexandru.croitor Alexandru Croitor
                Reporter:
                alexandru.croitor Alexandru Croitor
              • Votes:
                6 Vote for this issue
                Watchers:
                10 Start watching this issue

                Dates

                • Created:
                  Updated:

                  Gerrit Reviews

                  There are no open Gerrit changes