如何在monkeyrunner脚本中导入缺失的模块?
我在把一个看起来已经存在的模块:simplejson,导入到我的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'下为Python 2.5安装了simplejson。
我的问题是,如何才能正确地将simplejson模块导入到MonkeyRunner脚本中呢?
1 个回答
2
在Python中安装一个包,并不意味着它可以在Jython中使用。
Jython是基于Python(也叫CPython)的,意思是它想要和Python兼容,但它们的实现方式其实差别很大。
你可以把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包上是有效的……不过对其他包可能就不行了。
我更希望能直接为Jython安装simplejson。想了解更多细节,可以查看这个链接:如何在Jython中安装各种Python库?