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

2011-12-11 Thread Detlev Offenbach
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
det...@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

2011-12-08 Thread Gregory Ewing

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