Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. Qt for Python
  4. How to run external QT program from PyQT5 on MacOS
Forum Updated to NodeBB v4.3 + New Features

How to run external QT program from PyQT5 on MacOS

Scheduled Pinned Locked Moved Unsolved Qt for Python
29 Posts 3 Posters 3.9k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • SGaistS Offline
    SGaistS Offline
    SGaist
    Lifetime Qt Champion
    wrote on last edited by
    #2

    Hi and welcome to devnet,

    Why not start the application through the app bundle rather than going inside it to the executable ?

    Interested in AI ? www.idiap.ch
    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

    1 Reply Last reply
    0
    • Benjamin HalkoB Offline
      Benjamin HalkoB Offline
      Benjamin Halko
      wrote on last edited by
      #3

      When I try doing that it tells me permission denied.

      Here's where I got that fix from: https://stackoverflow.com/questions/23353472/permission-denied-opening-application-in-python-shell

      1 Reply Last reply
      0
      • SGaistS Offline
        SGaistS Offline
        SGaist
        Lifetime Qt Champion
        wrote on last edited by
        #4

        Ok, in that case I would use the open shell command and pass it the path to the bundle.

        Interested in AI ? www.idiap.ch
        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

        Benjamin HalkoB 1 Reply Last reply
        0
        • Benjamin HalkoB Offline
          Benjamin HalkoB Offline
          Benjamin Halko
          wrote on last edited by
          #5

          Ok thanks, I will try that out!

          1 Reply Last reply
          0
          • SGaistS SGaist

            Ok, in that case I would use the open shell command and pass it the path to the bundle.

            Benjamin HalkoB Offline
            Benjamin HalkoB Offline
            Benjamin Halko
            wrote on last edited by Benjamin Halko
            #6

            @SGaist I tried it out, and it gave me LSOpenURLsWithRole() failed with error -10810 for the file /Users/benjamin/Desktop/Dolphin.app.

            1 Reply Last reply
            0
            • SGaistS Offline
              SGaistS Offline
              SGaist
              Lifetime Qt Champion
              wrote on last edited by
              #7

              @Benjamin-Halko said in How to run external QT program from PyQT5 on MacOS:

              LSOpenURLsWithRole() failed with error -10810

              Are you hitting the situation described here ?

              Interested in AI ? www.idiap.ch
              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

              1 Reply Last reply
              0
              • Benjamin HalkoB Offline
                Benjamin HalkoB Offline
                Benjamin Halko
                wrote on last edited by Benjamin Halko
                #8

                @SGaist Yes that is actually the problem I am running into. Dolphin does not like being a child process of my program. Does QT have a simple solution to this problem?

                1 Reply Last reply
                0
                • SGaistS Offline
                  SGaistS Offline
                  SGaist
                  Lifetime Qt Champion
                  wrote on last edited by
                  #9

                  Does it only happen with Dolphin ?
                  By the way, why Dolphin on macOS rather than Finder ?

                  Interested in AI ? www.idiap.ch
                  Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                  1 Reply Last reply
                  0
                  • Benjamin HalkoB Offline
                    Benjamin HalkoB Offline
                    Benjamin Halko
                    wrote on last edited by
                    #10

                    Well Dolphin is the only .app I am trying to open with my program, so I wouldn't know if this happens with other programs.

                    What do you mean by macOS rather than Finder?

                    jsulmJ 1 Reply Last reply
                    0
                    • Benjamin HalkoB Benjamin Halko

                      Well Dolphin is the only .app I am trying to open with my program, so I wouldn't know if this happens with other programs.

                      What do you mean by macOS rather than Finder?

                      jsulmJ Offline
                      jsulmJ Offline
                      jsulm
                      Lifetime Qt Champion
                      wrote on last edited by
                      #11

                      @Benjamin-Halko said in How to run external QT program from PyQT5 on MacOS:

                      What do you mean by macOS rather than Finder?

                      The file manager on MacOS is called Finder. There is no Dolphin unless you install it.

                      https://forum.qt.io/topic/113070/qt-code-of-conduct

                      1 Reply Last reply
                      0
                      • Benjamin HalkoB Offline
                        Benjamin HalkoB Offline
                        Benjamin Halko
                        wrote on last edited by Benjamin Halko
                        #12

                        @jsulm Yeah finder is installed. By Finder rather than MacOS do you mean telling finder to open Dolphin Emulator rather than just tell MacOS to open it?

                        Oh and Dolphin works just fine when running it from Finder normally, it is just when I launch it using subprocess.Popen that is the trouble.

                        1 Reply Last reply
                        0
                        • SGaistS Offline
                          SGaistS Offline
                          SGaist
                          Lifetime Qt Champion
                          wrote on last edited by
                          #13

                          From the looks of it, we are talking about very different software.

                          "Dolphin" is known to be the KDE file manager. So from the looks of it you are trying to start something very different. Can you give more details about what it is ? And what exactly you are trying to do with your application ?

                          Interested in AI ? www.idiap.ch
                          Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                          Benjamin HalkoB 1 Reply Last reply
                          0
                          • SGaistS SGaist

                            From the looks of it, we are talking about very different software.

                            "Dolphin" is known to be the KDE file manager. So from the looks of it you are trying to start something very different. Can you give more details about what it is ? And what exactly you are trying to do with your application ?

                            Benjamin HalkoB Offline
                            Benjamin HalkoB Offline
                            Benjamin Halko
                            wrote on last edited by
                            #14

                            @SGaist I am wanting to open the Dolphin Emulator from my app as well as tell it to load a game using the -e argument that it accepts. However since Dolphin is also a QT program when trying to run it using subprocess, it tries loading both sets of libraries (from my app and Dolphin)

                            1 Reply Last reply
                            0
                            • SGaistS Offline
                              SGaistS Offline
                              SGaist
                              Lifetime Qt Champion
                              wrote on last edited by
                              #15

                              What if you use the QProcess::startDetached method ?

                              Interested in AI ? www.idiap.ch
                              Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                              Benjamin HalkoB 2 Replies Last reply
                              0
                              • SGaistS SGaist

                                What if you use the QProcess::startDetached method ?

                                Benjamin HalkoB Offline
                                Benjamin HalkoB Offline
                                Benjamin Halko
                                wrote on last edited by Benjamin Halko
                                #16

                                @SGaist Ok so I tried and nothing happened! But then I tried using the executable located in /Contents/MacOS/Dolphin
                                and it gave me this:

                                objc[2357]: Class QMacAutoReleasePoolTracker is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53a9f8) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8198). One of the two will be used. Which one is undefined.
                                objc[2357]: Class QT_ROOT_LEVEL_POOL__THESE_OBJECTS_WILL_BE_RELEASED_WHEN_QAPP_GOES_OUT_OF_SCOPE is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aa70) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8210). One of the two will be used. Which one is undefined.
                                objc[2357]: Class KeyValueObserver is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aa98) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8238). One of the two will be used. Which one is undefined.
                                objc[2357]: Class RunLoopModeTracker is implemented in both /Users/benjamin/Desktop/Dolphin.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore (0x10b53aae8) and /private/var/folders/50/g29zbzlx4fb85zh8kk4g6gm40000gn/T/_MEIYRjNbS/QtCore (0x10efe8288). One of the two will be used. Which one is undefined.
                                QObject::moveToThread: Current thread (0x7faab1e065c0) is not the object's thread (0x7faab1c17ed0).
                                Cannot move to target thread (0x7faab1e065c0)
                                
                                You might be loading two sets of Qt binaries into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded.
                                qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "" even though it was found.
                                This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
                                
                                Available platform plugins are: cocoa, minimal, offscreen, webgl.
                                

                                This was the code I used:

                                launch = QProcess()
                                launch.startDetached(dolphinPath+"/Contents/MacOS/Dolphin")
                                
                                1 Reply Last reply
                                0
                                • SGaistS SGaist

                                  What if you use the QProcess::startDetached method ?

                                  Benjamin HalkoB Offline
                                  Benjamin HalkoB Offline
                                  Benjamin Halko
                                  wrote on last edited by
                                  #17

                                  @SGaist Oh by the way, this issue only occurs when the program is packaged with pyinstaller, running it regularly works just fine.

                                  1 Reply Last reply
                                  0
                                  • SGaistS Offline
                                    SGaistS Offline
                                    SGaist
                                    Lifetime Qt Champion
                                    wrote on last edited by
                                    #18

                                    What exactly are you packaging ?

                                    Interested in AI ? www.idiap.ch
                                    Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                    1 Reply Last reply
                                    0
                                    • Benjamin HalkoB Offline
                                      Benjamin HalkoB Offline
                                      Benjamin Halko
                                      wrote on last edited by Benjamin Halko
                                      #19

                                      Here is my project folder. Here is the actual run dolphin function. Hope that helps.

                                      1 Reply Last reply
                                      0
                                      • SGaistS Offline
                                        SGaistS Offline
                                        SGaist
                                        Lifetime Qt Champion
                                        wrote on last edited by SGaist
                                        #20

                                        Did you try to use Popen with shell=True ?

                                        Interested in AI ? www.idiap.ch
                                        Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

                                        Benjamin HalkoB 1 Reply Last reply
                                        0
                                        • SGaistS SGaist

                                          Did you try to use Popen with shell=True ?

                                          Benjamin HalkoB Offline
                                          Benjamin HalkoB Offline
                                          Benjamin Halko
                                          wrote on last edited by Benjamin Halko
                                          #21

                                          @SGaist It gave the same error LSOpenURLsWithRole() failed with error -10810 for the file /Users/benjamin/Desktop/Dolphin.app.

                                          Oh and I tried starting the .app not executable in /Contents/MacOS/

                                          1 Reply Last reply
                                          0

                                          • Login

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • Users
                                          • Groups
                                          • Search
                                          • Get Qt Extensions
                                          • Unsolved