如何在monkeyrunner脚本中导入缺失的模块?

2 投票
1 回答
2407 浏览
提问于 2025-04-17 11:17

我在把一个看起来已经存在的模块: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库?

撰写回答