Re: Launching an independent Python program in a cross-platform way (including mac)
- From: Prateek <surekap@xxxxxxxxx>
- Date: 29 Apr 2007 16:51:35 -0700
On Apr 30, 4:32 am, André <andre.robe...@xxxxxxxxx> wrote:
I would like to find out how I can launch an independent Python
program from existing one in a cross-platform way. The result I am
after is that a new terminal window should open (for io independent of
the original script).
The following seems to work correctly under Ubuntu and Windows ... but
I haven't been able to find a way to make it work under Mac OS.
def exec_external(code, path):
"""execute code in an external process
currently works under:
* Windows NT (tested)
* GNOME (tested) [January 2nd and 15th change untested]
This also needs to be implemented for OS X, KDE
and some form of linux fallback (xterm?)
"""
if os.name == 'nt':
current_dir = os.getcwd()
target_dir, fname = os.path.split(path)
filename = open(path, 'w')
filename.write(code)
filename.close()
if os.name == 'nt':
os.chdir(target_dir) # change dir so as to deal with paths
that
# include spaces
Popen(["cmd.exe", ('/c start python %s'%fname)])
os.chdir(current_dir)
elif os.name == 'posix':
try:
os.spawnlp(os.P_NOWAIT, 'gnome-terminal', 'gnome-
terminal',
'-x', 'python', '%s'%path)
except:
raise NotImplementedError
else:
raise NotImplementedError
==========================
Any help would be greatly appreciated.
André
Well,
You need to check sys.platform on the Mac instead of os.name.
os.name returns 'posix' on all *nix based systems. sys.platform
helpfully returns "darwin" on the Mac.
Not sure how to start Terminal. Here's what I got when I tried it:
9460if sys.platform == "darwin": os.spawnlp(os.P_NOWAIT, '/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal')
2007-04-30 05:19:59.255 [9460] No Info.plist file in application bundle or no NSPrincipalClass in the Info.plist file, exiting
Maybe I'm just calling it wrong and you'll have more luck.
Prateek
.
- Follow-Ups:
- References:
- Prev by Date: Re: fastest way to find the intersection of n lists of sets
- Next by Date: Re: fastest way to find the intersection of n lists of sets
- Previous by thread: Re: Launching an independent Python program in a cross-platform way (including mac)
- Next by thread: Re: Launching an independent Python program in a cross-platform way (including mac)
- Index(es):
Relevant Pages
|