How to get a correct entry in the menu for a Python application on Mac OS X

Detlev Offenbach detlev at die-offenbachs.de
Sun Dec 11 06:20:20 EST 2011


I got it working by creating a symbolic link to the Python interpreter to 
be used in my application package and using this symbolic link to start 
the main Python script.


Gregory Ewing wrote:

> Detlev Offenbach wrote:
>> I am fairly new to Mac OS X and would like to know, what I have to do
>> to make my Python application show the correct name in the menu bar.
>> What did I do so far. I created an application package containing the
>> .plist file with correct entries and a shell script, that starts the
>> correct Python interpreter with the the main script.
> 
> I don't think that will work, because the executable that
> your shell script is starting is in an app bundle of its
> own, and MacOSX will be using the plist from that bundle,
> which just has the generic "Python" name in it.
> 
> There are a couple of things you could do:
> 
> 1) Use py2app to create your app bundle. It does the
> right things -- not sure exactly what, but it works.
> 
> 2) Hack things at run time. I use the following PyObjC
> code in PyGUI to set the application name:
> 
>    from Foundation import NSBundle
> 
>    ns_bundle = NSBundle.mainBundle()
>    ns_info = ns_bundle.localizedInfoDictionary()
>    if not ns_info:
>      ns_info = ns_bundle.infoDictionary()
>    ns_info['CFBundleName'] = my_application_name
> 
-- 
Detlev Offenbach
detlev at die-offenbachs.de



More information about the Python-list mailing list