2013-07-08 9 views
0

Ti.Process.createProcess이라는 Python 스크립트에 전달 된 인수를 읽으려고합니다. 나는 다음과 같은 코드를 실행하면TideSDK Python에서 sys.argv로 인수 가져 오기

: 그것은이 sys 물체처럼 보이는

File "", line 2, in <module>

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

argv 속성을 가지고 있지 않습니다

import sys
sys.argv

을 나는 오류가 발생합니다.

내가 잘못 했나요? 어떤 제안?

답변

0

파이썬 경로에 다른 sys.py이있는 것 같습니다.

+0

내가 TideSDK를 사용하고 있다는 것을 알지? 내가 PATH에 또 다른'sys.py'를 가지고 있는지 또는 그것을 디버깅 할 수 있는지 어떻게 알 수 있습니까? –

+0

확실하지 ... 당신은 간단한 파이썬 스크립트를 사용할 수 있습니다 : os.walk에 난에 대한 '수입 OS 를 ("/ 경로 /로/당신의/조류/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에서, 파이썬 스크립트는이 "프로세스"하지만 그것이 "< 스크립트 >"로 excecuted 때로 excecuted 경우에만 sys.argv 요소에 액세스 할 수 있습니다.