如何将缺少的模块导入到monkeyrunner脚本中?
问题描述:
我有点难以导入看似存在的模块: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脚本中?
答
为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?。