Search code examples
pythonpyqt5py2app

Class is implemented in both places when using py2app


I am trying to make a standalone application using py2app with python3:

python3 setup.py py2app --packages=PyQt5

Everything seems to work just fine. But when one launches the application, the following errors are caught in Mac console:

14/04/16 13:27:27,688 app[98583]: objc[98583]: Class RunLoopModeTracker
is implemented in both   
/Users/muammar/github/app/dist/app.app/Contents/Frameworks/QtCore.framework/Versions/5/QtCore 
and /usr/local/Cellar/qt5/5.6.0/lib/QtCore.framework/Versions/5/QtCore. 
One of the two will be used. Which one is undefined.

That is also reported for the classes: NotificationReceiver, QCocoaPageLayoutDelegate and others.

I read elsewhere, that placing a qt.conf file next to the application as suggested here should solve the problem. But actually it does not work in my case. Does anybody know how to avoid this problem?.


Solution

  • For those having this problem, I fix it by doing the following:

    python3 setup.py py2app --packages=PyQt5
    cp -R /usr/local/Cellar/qt5/5.6.0/plugins dist/mya.app/Contents/PlugIns
    macdeployqt dist/my.app
    

    The problem is gone, and it works everything OK.