[Pythonmac-SIG] python + code double-clickable .app bundle?
Ivan Kozik
ivan@allometra.com
Sun, 22 Dec 2002 13:10:34 -0800
Hello,
I am trying to combine the python interpreter and a python source code
file into a .app bundle on Mac OS X 10.2. The only way I know of
starting it now is:
open -a python code.py
(which is obviously not a good solution).
Since the python interpreter requires an argument to execute something,
I tried to replace the main binary with a compiled C executable (in the
.app bundle) that executes the python interpreter with the source code
as an argument. (The finder and 'open' executes the binary in MacOS/
with the full path, so I can easy chdir() to this directory and run an
executable):
#include <stdio.h>
main(int argc, char **argv) {
char *loc;
char *p;
loc = argv[0];
if (p = strstr(loc, "MacOS/ProgramName")) strcpy(p, "MacOS/");
chdir(loc);
system("exec ./python ./sourcecode.py");
}
I have tried this program with the "exec" in the system() and without
the "exec" too. The problem is that my program uses Tkinter, and
whenever i click on or try to move the window with my "solution", I get:
SetFrontProccess failed,-606
(in the console).
I'm guessing this problem appears because the new python process has a
different PID from what the Dock and Finder expects.
This problem did not appear when used 'open -a python sourcecode.py'.
I have also tried modifying the python source code
(Python-2.2.1/Mac/Python/macmain.c) to run my source code file at
startup (without an argument) but I failed (I barely know C and how the
python internals work).
My question is, is there any way to run the python program in a .app
bundle without an argument to the source code? (and have the mac os x
windowing manager properly recognize my window)?
Thanks,
Ivan