[PyQt] Re: py2app generates huge files (200MB)

Michael Held michael.held at bc.biol.ethz.ch
Sat Jun 27 13:03:07 BST 2009


hi piotr,

yes, it looks like PyQt4 is using a lot of Pythons standard packages, so
all the files in Contents/Resources/lib/python2.6/lib-dynload are most
probably needed...

I zipped and got 70MB with Qt debug files (from 200MB)
and 15MB without (from 43MB).
is there a way to provide an .app file with zipped content which is
unzipped on the fly?

currently there is not installer for PyQt4.5 on MacOS available, right?!
I was compiling everything from scratch (I am also working with
Stackless Python 2.6.2). I guess there is a way to compile PyQt4 in
universal mode... somehow ;-)

thanks a lot again! :-)
cheers
michael


piotr maliński wrote:
> Debug libraries don't get excluded by "excludes" list so they will have
> to be removed. Also the package includes everything needed to run it -
> also some Python components.
> /Contents/Resources/lib/ 9,5 MB in my case
> /Contents/Frameworks/  24,8 MB
> 
> And it zipps to 12MB
> 
> Note that the resulting binary has some symlinks (in libs for example)
> and calculating size on Mac OS X will count the symlinked (alias) files
> in :) So check zipped size :)
> 
> If you used Qt with Qt Creator or custom Qt compilation on Intel Mac
> then you have Intel-only Qt and you will get Intell only App. If you
> used the Qt DMG without Qt Creator then you got Universal Qt and your
> app will be universal and DOUBLE size :) (22-24MB Zipped for
> qtcore/qtgui app).
> 
> 
> 2009/6/27 Michael Held <michael.held at bc.biol.ethz.ch
> <mailto:michael.held at bc.biol.ethz.ch>>
> 
>     hi piotr,
> 
>     thanks a lot for your help!
> 
>     aral balkan writes on his page that one "can remove the Qt debug files".
>     these are ~150MB in my case and the *biggest* part of the problem.
>     I guess I need to write a "better" Qt4 recipe for pyapp or I have to add
>     some kind of clean-up step after the execution of py2app...
> 
>     furthermore Contents/Resources/lib/python2.6/lib-dynload contains ~14MB
>     of python packages which are not used by my "empty" script (and I assume
>     PyQt4 is not using those as well...
> 
>     again, I am happy with a 40MB .app file but a 200MB file just to much
>     overhead.
> 
>     does anybody know how to tweak the PyQt4 recipe of py2app? I had a short
>     look on the code but could not find the right script.
>     or would it be helpful to work with the latest svn revision instead the
>     released version 0.3.6?
> 
>     cheers
>     michael
> 
> 
> 
>     piotr maliński wrote:
>     > check out my tutorial:
>     > http://www.rkblog.rk.edu.pl/w/p/building-mac-os-x-applications-py2app/
>     >
>     > QtCore/QtGui app zipped should be about 12MB intel-only (22MB if
>     you use
>     > Universal Qt - thus making universal py2app application)
>     >
>     > 2009/6/27 Michael Held <michael.held at bc.biol.ethz.ch
>     <mailto:michael.held at bc.biol.ethz.ch>
>     > <mailto:michael.held at bc.biol.ethz.ch
>     <mailto:michael.held at bc.biol.ethz.ch>>>
>     >
>     >     hi pyqt,
>     >
>     >     I am using PyQt4.5 and py2app 0.3.6 on MacOS 10.5
>     >
>     >     > from setuptools import setup
>     >     >
>     >     > APP = ['MyApp.py']
>     >     > DATA_FILES = []
>     >     > OPTIONS = {'argv_emulation': True,
>     >     >            'includes': [],
>     >     >            }
>     >     >
>     >     > setup(
>     >     >     app=APP,
>     >     >     data_files=DATA_FILES,
>     >     >     options={'py2app': OPTIONS},
>     >     >     setup_requires=['py2app'],
>     >     > )
>     >
>     >     running this setup.py PyQt4, sip and the Qt framework are
>     detected and
>     >     the app runs fine,
>     >
>     >     *BUT* the app is 200MB (TWOHUNDRET MEGABYTES) big and its
>     doing nothing
>     >     but opening an empty QFrame.
>     >     I looked into the app-contents and found a lot of debug stuff
>     for the
>     >     QtGui/QtCore Frameworks.
>     >
>     >     after deleting these files the app was still running fine and
>     only 42MB
>     >     big (I found a lot of Pyhton libs/packages in there which are
>     not used
>     >     at all)
>     >
>     >     42MB for an "empty program" is ok, since all my scripts will
>     not add
>     >     much size, but 200MB is just *too big*.
>     >     it looks like py2app is including a lot of unnecessary stuff...
>     >     could stackless Python 2.6.2 is the problem?
>     >
>     >     thanks a lot for your help!
>     >     michael
>     >
>     >     _______________________________________________
>     >     PyQt mailing list    PyQt at riverbankcomputing.com
>     <mailto:PyQt at riverbankcomputing.com>
>     >     <mailto:PyQt at riverbankcomputing.com
>     <mailto:PyQt at riverbankcomputing.com>>
>     >     http://www.riverbankcomputing.com/mailman/listinfo/pyqt
>     >
>     >
> 
>     _______________________________________________
>     PyQt mailing list    PyQt at riverbankcomputing.com
>     <mailto:PyQt at riverbankcomputing.com>
>     http://www.riverbankcomputing.com/mailman/listinfo/pyqt
> 
> 



More information about the PyQt mailing list