The file libqcocoa.dylib does exist in the Qt distribution.
Definitely the stock pyinstaller -w operation does not include it or
anything else with a name like "*coco*" in the output bundle.
I modified the spec file to read as follows:
# -*- mode: python -*-
> a = Analysis(['/Users/dcortesi/Dropbox/David/PPQT/CoBro/cobro.py'],
> pathex=['/Users/dcortesi/Desktop/scratch/pyinst'],
> hiddenimports=[],
> hookspath=None,
> runtime_hooks=None)
> pyz = PYZ(a.pure)
>
> exe = EXE(pyz,
> a.scripts,
> exclude_binaries=True,
> name='cobro',
> debug=False,
> strip=None,
> upx=True,
> console=False , icon='cobro.icns')
>
> a.binaries += [ ('cocoa',
> '/Developer/5.4/clang_64/plugins/platforms/libqcocoa.dylib', 'BINARY' ) ]
> a.binaries += [ ('libqcocoa',
> '/Developer/5.4/clang_64/plugins/platforms/libqcocoa.dylib', 'BINARY' ) ]
> a.binaries += [ ('libqcocoa.dylib',
> '/Developer/5.4/clang_64/plugins/platforms/libqcocoa.dylib', 'BINARY' ) ]
>
> coll = COLLECT(exe,
> a.binaries,
> a.zipfiles,
> a.datas,
> strip=None,
> upx=True,
> name='cobro')
> app = BUNDLE(coll,
> name='cobro.app',
> icon='cobro.icns')
>
When this is run, the desired lib does appear, in three copies under three
names, in the cobro.app bundle:
$ find dist/cobro.app -name '*coco*'
> dist/cobro.app/Contents/MacOS/cocoa
> dist/cobro.app/Contents/MacOS/libqcocoa
> dist/cobro.app/Contents/MacOS/libqcocoa.dylib
>
Nevertheless, when the app is executed it dies as before with the abort,
This application failed to start because it could not find or load the Qt
> platform plugin "cocoa".
>
I go into the "hooks" folder and execute cat hook-PyQt5* | grep cocoa and
get no output, so it is not mentioned in a hook. (Nor in PyQt4*)
Any ideas welcome...
--
You received this message because you are subscribed to the Google Groups
"PyInstaller" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/pyinstaller.
For more options, visit https://groups.google.com/d/optout.