Mailing List Archive

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

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. The menu bar just shows
Python instead of the name of my application. If you are interested the
application can be found via http://eric-ide.python-projects.org.


Regards,
Detlev
--
Detlev Offenbach
detlev@die-offenbachs.de
--
http://mail.python.org/mailman/listinfo/python-list
Re: How to get a correct entry in the menu for a Python application on Mac OS X [ In reply to ]
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
--
http://mail.python.org/mailman/listinfo/python-list
Re: How to get a correct entry in the menu for a Python application on Mac OS X [ In reply to ]
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@die-offenbachs.de
--
http://mail.python.org/mailman/listinfo/python-list