2012-01-28 73 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() 

导入错误:没有模块名为simplejson

据我了解,MonkeyRunner使用的Jython 2.5,基于Python的2.5?我知道JSON模块是Python 2.7的,但是我已经在'/Library/Python/2.5/site-packages/simplejson-2.3.2-py2.5-macosx-10.7-x86_64.egg'下安装了simplejson for Python 2.5。

我的问题是,我如何正确地将simplejson模块导入到MonkeyRunner脚本中?

回答

2

为Python安装软件包不会使其可用于Jython。

Jython基于Python(又名CPython),意思是前者的目的是与后者兼容,但实现是完全不同的。

有可能simplejson的CPython的版本添加到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包。与其他软件包,它将不会工作。

我宁愿为Jython实际安装simplejson。详情请参阅How can I install various Python libraries in Jython?