[Pythonmac-SIG] Building an extensible bundle with py2app
ronaldoussoren at mac.com
Wed Oct 17 16:45:24 CEST 2012
On 17 Oct, 2012, at 16:12, Emanuele Santos <emanuelesantos at gmail.com> wrote:
> Hi, all
> We build a bundle with py2app and we would like to make it extensible so users could install on demand other python packages into the python framework included in the bundle, for example by running easy_install.
> Is there a recommended way of doing that? I noticed that the site.py file included in the bundle is not complete so when I tried using the --user command line option or setting the $PYTHONHOME, I got an error.
I wouldn't change the application bundle itself, but would add an option to load python code from a user specified location. There are two reasons for not changing the application bundle itself: that would invalidate code signatures, and users cannot necessarily write into the bundle (I tend to install applications using a separate account with more privileges than my normal account).
One way to do this is adding something like this to your application's startup code:
Users can then install additional modules in "~/Library/Application Support/MyApp/Python" and your application can then use them.
If you're using a semi-standalone build (for example because you use Apple's python build) you can also use the "--site-packages" option to add the default site-packages directory to your application's search path. However, when I look at the code that not only just works for semi-standalone builds, but I'm also also not sure if the code that adds ~/Library/Python/... to sys.path actually works.
> -- Emanuele.
> Pythonmac-SIG maillist - Pythonmac-SIG at python.org
> unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG
More information about the Pythonmac-SIG