[Pythonmac-SIG] py2app build problems

William Kyngesburye woklist at kyngchaos.com
Fri Aug 11 22:34:17 CEST 2006


I have a setup.py I generated from py2applet which I've expanded to  
copy in all the shell scripts and binaries and support files needed  
for an application (py2app is just for the app startup, the app is  
all shell scripts and C binaries).

- I have dylib_excludes worked out so it doesn't pull in a bunch of  
extra frameworks (3rd party stuff) that are expected to be installed  
separately.  One odd thing there, before I excluded them: a couple  
frameworks are wrappers (umbrella framework) for a collection of unix  
libraries or make use of a bunch of unix libraries, included in the  
framework.  py2app copied the whole framework, then duplicated the  
included libraries needed by the framework in the top level of the  
Frameworks folder, like (simplified):

Contents
     Frameworks
         Foo.framework
             Libraries
                 libbar1.dylib
                 libbar2.dylib
             Foo  [uses libbar1 and libbar2]
         libbar1.dylib  [Foo's new relative @executable_path
         libbar2.dylib   linking uses these copies]

If I wanted to include the frameworks, it would be a mess.

- the dylib exclude option is not working for dylibs, just  
frameworks.  I've tried various forms: the full path as specified in  
the install name, libfoo, libfoo.dylib, libfoo.version.dylib.  It  
still copies them.

- for libraries installed from the software, it's pulling in  
installed copies (makes sense, since that's where the install name  
has them).  But these may be older than the ones I've just built for  
the app package and haven't installed yet.


given the various issues with pulling in libraries and frameworks, an  
exclude option that would be nice is to exclude all libraries/ 
frameworks, without having to figure out what they might be and  
listing every one, a 'dylib_excludes: all' option.  I would rather  
install needed libraries manually anyways (as resources), and the  
application sets DYLD_LIBRARY_PATH already so relative paths aren't  
needed.


-----
William Kyngesburye <kyngchaos at kyngchaos.com>
http://www.kyngchaos.com/

"This is a question about the past, is it? ... How can I tell that  
the past isn't a fiction designed to account for the discrepancy  
between my immediate physical sensations and my state of mind?"

- The Ruler of the Universe



More information about the Pythonmac-SIG mailing list