Launching an independent Python program in a cross-platform way (including mac)

André andre.roberge at gmail.com
Mon Apr 30 01:32:20 CEST 2007


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é




More information about the Python-list mailing list