Clickable (wx)python app in OS X

P

PhysicsGenius

AAAAARRRRRRRRGGHGHGHGHGHGHGHGHGH!!!!!! I hate Macs.

I have a wxPython program. It runs fine on OS X when I launch it from
the Terminal ("pythonw appname.py") . The user wants to be able to
click it. Two main suggestions on the Internet, neither of which
works:

1) "Use Platypus" So I download it, upgrade Stuffit, install both,
figure out how to use it, create an app....and it doesn't work for
graphical apps. Nice to know, thanks for telling me ahead of time!

2) "Just associate .py files with PythonInterpreter". Sounds easy!
So I navigate to appname.py, Get Info, Open With, navigate to
PythonInterpreter....WhereTF is "PythonInterpreter"? Not on the OS X
system anywhere and Google only finds a Python module.

So, how do I create a clickable icon that will launch my wxPython
program?
 
C

Chris McD

PhysicsGenius said:
AAAAARRRRRRRRGGHGHGHGHGHGHGHGHGH!!!!!! I hate Macs.

I have a wxPython program. It runs fine on OS X when I launch it from
the Terminal ("pythonw appname.py") . The user wants to be able to
click it. Two main suggestions on the Internet, neither of which
works:

1) "Use Platypus" So I download it, upgrade Stuffit, install both,
figure out how to use it, create an app....and it doesn't work for
graphical apps. Nice to know, thanks for telling me ahead of time!

2) "Just associate .py files with PythonInterpreter". Sounds easy!
So I navigate to appname.py, Get Info, Open With, navigate to
PythonInterpreter....WhereTF is "PythonInterpreter"? Not on the OS X
system anywhere and Google only finds a Python module.

So, how do I create a clickable icon that will launch my wxPython
program?

Well you are opening it with pythonw so why not associate *.py with
pythonw or python?

Chris
 
P

PhysicsGenius

Chris said:
Well you are opening it with pythonw so why not associate *.py with
pythonw or python?

Chris

I was pretty sure this was impossible, but I may
have done it. For anyone else as frustrated as I
was (and still am, kinda): I associated .py with
/System/Library/Frameworks/Python.framework/Resources/PythonLauncher.
It still brings up a Terminal window, but at
least the app launches from a click.

Mac OS X: It Just Works (poorly)
 
A

Alex Martelli

PhysicsGenius said:
AAAAARRRRRRRRGGHGHGHGHGHGHGHGHGH!!!!!! I hate Macs.

Just the perfect approach to get any help whatsoever from those of us
who don't.

*PLONK*.


Alex
 
R

Ronald Oussoren

I was pretty sure this was impossible, but I may have done it. For
anyone else as frustrated as I was (and still am, kinda): I associated
.py with
/System/Library/Frameworks/Python.framework/Resources/PythonLauncher.
It still brings up a Terminal window, but at least the app launches
from a click.

If you asked your question on the pythonmac SIG you'd have gotten your
answer a lot sooner :)

The best way to build a double-clickeable application on OSX is by
building an .app bundle that contains your application. One way to do
this is using bundlebuilder:

# buildapp.py
from bundlebuilder import buildapp

buildapp(
name = "My Application",
mainprogram = "TableModel.py",
resources = ["English.lproj"],
nibname = "MainMenu",
)
# end of buildapp.py

You can now run 'python buildapp.py build' to create the application
bundle, run 'python buildapp.py' to see some more options.
Mac OS X: It Just Works (poorly)

No, it works differently :)
 
G

Greg Ewing

has said:

You could also try creating a bundle by hand. I tried that
as an experiment recently, and I got it to work. From memory,
all you need is a directory structure that contains

NameOfApp.app/Contents/MacOS/NameOfApp

where the final NameOfApp is the executable. This can be
a Python script with a #! line that invokes the appropriate
interpreter (python or pythonw). Any other modules that it
needs can be put in the MacOS directory alongside it.

Another way is to use AppletBuilder to create a "skeleton"
bundle from your main .py file, and then manually add other
required modules to the MacOS directory. That will give
you command line emulation, ability to give it a nice icon,
etc.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,209
Messages
2,571,085
Members
47,683
Latest member
AustinFairchild

Latest Threads

Top