Как импортировать отсутствующий модуль в скрипт monkeyrunner? - PullRequest
2 голосов
/ 28 января 2012

У меня возникли сложности с импортом кажущегося существующего модуля: simplejson в мой скрипт 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?

1 Ответ

2 голосов
/ 29 января 2012

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

Jython основан на Python (он же 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.См. Как я могу установить различные библиотеки Python в Jython? для получения подробной информации.

...