2012-01-28 1 views
2

Мне немного сложно импортировать, казалось бы, существующий модуль: simplejson в мой скрипт MonkeyRunner.Как импортировать недостающий модуль в скрипт monkeyrunner?

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice 
import simplejson 

def main(): 
    print "this is a test" 

if __name__ == "__main__": 
    main() 

ImportError: Нет модуль с именем simplejson

Как я понимаю, MonkeyRunner использует Jython 2,5, основанный на Python 2.5 ?. Я знаю, что модуль JSON пришел в Python 2.7, но я установил simplejson для Python 2.5 в разделе '/Library/Python/2.5/site-packages/simplejson-2.3.2-py2.5-macosx-10.7-x86_64.egg'

Мой вопрос: как правильно получить модули simplejson, импортированные в сценарий MonkeyRunner?

ответ

2

Установка пакета для Python не делает его доступным для использования с Jython.

Jython основан на Python (aka CPython) в том смысле, что первый стремится быть совместимым с последним, но реализации совершенно разные.

можно добавить версию CPython из simplejson на пути Jython в:

import sys 
sys.path.append("/Library/Python/2.5/site-packages/simplejson-2.3.2-py2.5-macosx-10.7-x86_64.egg") 
import simplejson 

Этот «трюк» происходит на работу (для меня по крайней мере ...) с пакетом simplejson. С другими пакетами это не сработает.

Я бы предпочел фактически установить simplejson для Jython. См. How can I install various Python libraries in Jython?.