Привет.
Вместо subprocess.call() используйте subprocess.Popen(). Об этом хорошо написано по-русски в книге ‘Python в системном администрировании UNIX и Linux’ Ноа Гифт, Джереми Джонс.
Вот рабочий код, проверил :):
#!/usr/bin/python
# -*- coding: utf-8 -*-
import gtk
import subprocess
win = gtk.Window()
def btn1_clicked(btn1):
gtk.main_quit()
subprocess.Popen('python setup_sh.py',shell=True)
win.set_default_size(300, 50)
win.set_border_width(100)
win.connect('destroy', gtk.main_quit)
win.set_title('Driver setup')
txtvar = 'Установка драйверов модема SkyLink '
txt = gtk.Label(txtvar)
txt.show()
btn = gtk.Button('Выход')
btn.connect('pressed', lambda button: gtk.main_quit())
btn.show()
btn1 = gtk.Button('Запуск')
btn1.connect('clicked', btn1_clicked )
btn1.show()
box = gtk.HBox()
box.pack_start(txt)
box.pack_start(btn)
box.pack_start(btn1)
win.add(box)
box.show()
win.show()
gtk.main()
Где, setup_sh.py:
#!/usr/bin/python
# -*- coding: utf-8 -*-
while True:
print 'Установка драйверов модема SkyLink '