2013-07-08 1 views
0

Я пытаюсь прочитать аргументы, переданные скрипту Python, вызванному Ti.Process.createProcess.TideSDK Python получить аргументы с sys.argv

Когда я запускаю следующий код:

import sys
sys.argv

Я получаю ошибку:

File "", line 2, in <module>

AttributeError: 'module' object has no attribute 'argv'

Похоже sys объект не имеет атрибут argv.

Я что-то не так? какие-либо предложения?

ответ

0

Похоже, у вас еще есть sys.py в вашем пути к python.

+0

Вы знаете, что я использую TideSDK, не так ли? Как я могу узнать, есть ли у меня еще один 'sys.py' в PATH или отладить его? –

+0

Не уверен, что ... Вы можете использовать простой питон скрипт: 'импорта ОС для г в os.walk ("/ путь/к/ваш/Tide/SDK /"): если "sys.py" в i [2]: print «Найдено sys.py в папке», i [0] ' – JadedTuna

+0

Спасибо за вашу помощь, я думаю, я нашел, где проблема. –

0

Я нашел ошибку.

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

<script type="text/python" src="script.py"></script>

и

<script type="text/python">
import sys
print sys.argv
</script>

И я получил ошибку:

File "", line 2, in <module>
AttributeError: 'module' object has no attribute 'argv'


Но когда я бегу:

var path = Ti.API.getApplication().getResourcesPath();
var p = Ti.Process.createProcess(['python', path + '\search_client.py', param1, param2]);
p.setOnReadLine(function(data){doStuff(data)});
p.launch();

Я получаю правильный результат.


Так, в TideSDK, питон скрипт имеет доступ к sys.argv элементу только тогда, когда он, как та или иная строчка «Процесса», но не тогда, когда это та или иная строчка как «< сценарий >».