2013-04-29 3 views
2

Я проектирую интерфейс, используя pythonqt, и когда я пытаюсь позвонить своей программе с помощью os.system, интерфейс замерзает.Неисправность ОС Python

def pairClicked(self,exp1,exp2): 
     os.system("""cd kat 
        ./run -v pair""") #in the terminal i used to call my python interface, it runs this commands 
     os.system(exp1+" "+expr2) #but here nothing happens 

После того, как я убить программу терминал говорит (в случае exp1=t1 и exp2=t2):

sh 1: t1 not found 
sh 2: t2 not found 

Любые Ideia/sugestions того, что IAM делать неправильно? Обратите внимание, что я впервые делаю что-либо подобное.

Edit:

Я редактировал и использовал этот кусок кода вместо

p=subprocess.Popen(['cd','kat','./run', '-pair', str(test.__len__()),expr1Text,expr2Text],stdout=subprocess.PIPE,shell=True) 
out= p.communicate() 
print(out) 

Но это возвращение ('',None). Я думаю, что проблема, я использую команду как cd kat ./run -pair *len* expr1 expr2 вместо:

Как я могу использовать подпроцесс, чтобы сделать новые линии?

+0

Что находится в 'run'? – Blender

ответ

1

Звучит как ./run блокируется.

Возможно, вам понадобится создать асинхронный подпроцесс или, возможно, использовать другой поток, чтобы ваш графический интерфейс мог продолжать работать в то время как ./run работает.