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

Gregory Ewing greg.ewing at canterbury.ac.nz
Thu Dec 8 16:46:48 EST 2011


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

-- 
Greg



More information about the Python-list mailing list