2014-01-30 4 views
0

Я пытаюсь создать "АВД" из питона сценария с помощью команды: андроид создать AVD -n -t avd1 андроида-19 -s QVGA -b x86Python скрипт не может выполнить команду "Android"

Каждый раз, когда я запускаю эту команду через Terminal, я получаю avd, но если я выполняю ту же команду из скрипта python, получая ошибку, в которой говорится, что команда «android» не найдена.

Python скрипт:

#!/usr/bin/env python 

import sys, os 

def main(): 
    cmd = "android create avd -n avd1 -t android-19 -s QVGA -b x86" 
    print cmd 
    os.system(cmd) 

main() 

Что может быть возможной ошибки.

Окружающая среда: Ubuntu 13,04 Путь переменного значения: экспорта PATH = $ PATH: ~/андроид-SDKs/инструменты /: ~/андроид-SDKs/Строить-инструменты /: ~/андроид-SDKs/платформенные инструменты /: ~/андроид-SDKs/

+0

Кроме того, см: http://stackoverflow.com/questions/3241735/problems-adding-path-and-calling-external-program-from-python – Santa

ответ

1

Из документации Пайтона:

Changes to sys.stdin , etc. are not reflected in the environment of the executed command.

os.system имеет ограничения. Предпочтительным является модуль subprocess.

Try:

import subprocess 

cmd = "android create avd -n avd1 -t android-19 -s QVGA -b x86" 
subprocess.call(cmd.split()) 
+0

я получаю ошибка: Traceback (последний последний вызов): Файл «Test.py», строка 6, в subprocess.call (cmd.split()) Файл «/usr/lib/python2.7/subprocess.py », строка 524, при вызове return Popen (* popenargs, ** kwargs) .wait() Файл« /usr/lib/python2.7/subprocess.py », строка 711, в __init__ errread, errwrite) Файл «/usr/lib/python2.7/subprocess.py», строка 1308, в _execute_child raise child_exception OSError: [Errno 2] Нет такого файла или каталога – Amber

+0

Каково значение 'os.environ ['PATH «] '? Вы правильно установили переменную '$ PATH'? – Santa

+0

Значение $ PATH есть в самом вопросе. – Amber

Смежные вопросы