On 15 Mar, 2011, at 11:57, Christopher Barker wrote:

> On 3/15/11 6:11 AM, Ronald Oussoren wrote:
>>> Once deployed as .app using py2app, I am not getting all the env vars that 
>>> are
>>> available to users.
> 
>> That's on OSX issue, and not a problem in py2app.  Most of the environment 
>> variables you see from the command-line are initialized by the shell and/or 
>> Terminal.app and are not available to GUI applications. You'd see the same 
>> issue with a native application.
> 
> Indeed, and we did explain that to the OP on the wxPython list.

It would have been nice if he'd mentioned that in his post here.

> 
> However, it seems that it is fairly common that folks write applications that 
> call command line utilities. In this case, they need the environment to be 
> set up the way that it is in the user's default shell. I suggest that it 
> might be nice to have an option for py2app to build an app that will 
> initialize the environment that a user would see in their standard shell.

That is non-trivial, especially when the user has specified a different shell 
in the Terminal preferences.  To get the right environment you'd probably have 
to:

* Reverse engineer the default shell created by Terminal.app
* Parse the environment plist file (I don't recall the name, but have an PyObjC 
example that uses is)
* Run 'login -f USER' in a subprocess, then run the "env" command using that 
shell

All of this should be done in a bootstrap script (in py2app), and code should 
then be added to the distutils command to ensure that the script gets included 
when an option is specified (lets say, "--emulate-shell-environment")

All of this is definitely possible, but I don't know when I'll get around to 
doing it.   

If someone can write a function that fetches the information I can easily 
integrate it into py2app. This should be a function that takes no arguments and 
updates os.environ, something like:

.. def _emulate_shell_environment():
..     import os
..     os.environ['KEY'] = 'value'

BTW. I've filed issue #15 for this, to ensure the request doesn't get lost 
(<https://bitbucket.org/ronaldoussoren/py2app/issue/15/py2app-should-have-way-to-emulate-shell>)

Ronald

_______________________________________________
Pythonmac-SIG maillist  -  Pythonmac-SIG@python.org
http://mail.python.org/mailman/listinfo/pythonmac-sig
unsubscribe: http://mail.python.org/mailman/options/Pythonmac-SIG

Reply via email to