2017-03-20 1 views
0

버튼을 클릭하여 다양한 응용 프로그램을 실행하기위한 GUI를 만들고 있습니다. 나를 수동으로 모두 열지 않아도되는 것을 막기 위해서.파이썬 서브 프로세스 호출이 아무 것도하지 않습니다.

현재 Android 에뮬레이터를 시작하려고합니다. 다음 명령을 사용하여 수행 할 수 있습니다. emulator @Nexus_5X_API_22 ... 매우 간단합니다.

내가 사용하는 파이썬에서이 작업을 수행하려고 : subprocess.Popen(["emulator @Nexus_5X_API_22"],shell = True)

그러나, 아무것도이가 호출 될 때 일어날 것 같다. print 서술문은 '127'을 반환합니다.

내가 뭘 잘못하고 있니?

은 ----------- EDIT 여기 -----------

, 나는 Kivy 사용하고 일부 코드입니다.

class RunTests(Screen): 
def __init__(self,**kwargs): 
    super(RunTests,self).__init__(**kwargs) 

    layout1 = StackLayout(orientation='lr-bt') 

    runbutton = Button(text='run all', size_hint=(0.8,0.05)) 
    runbutton.bind(on_press=self.runAll) 

    layout1.add_widget(runbutton) 

    self.add_widget(layout1) 

def runAll(self,*args): 
    subprocess.Popen(["emulator", "@Nexus_5X_API_22"]) 

답변

0

문제는 사용자가 매개 변수를 목록의 개별 항목으로 분리하지 않았기 때문입니다. "shell = True"라고 했으므로 subprocess는 "emulator\ @Nexux_5X_API_22"이라는 프로그램을 실행하려고했습니다. @Youn 엘란은 전체 경로를 사용하여 제안 있도록 매개 변수를 분리하고

subprocess.Popen(["emulator", "@Nexus_5X_API_22"]) 
+0

나는 이것을 시도했지만 여전히 127 오류를 반환합니다. –

0

확인 쉘을 건너 뜁니다.

subprocess.Popen(['/Users/User/Library/Android/sdk/tools/emulator -netdelay none -netspeed full -avd Nexus_5X_API_22'],shell=True) 

이것은 작동하지 않습니다.

관련 문제