Launching an independent Python program in a cross-platform way (including mac)
André
andre.roberge at gmail.com
Sun Apr 29 19:39:45 EDT 2007
On Apr 29, 8:32 pm, André <andre.robe... at gmail.com> 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.
>
Forgot to add that there was an import as follows:
import os # should have been obvious
from subprocess import Popen # slightly less so
> 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