0

嗨,我是 python 开发的新手。我正在尝试执行http://dtmilano.blogspot.in/2012/02/monkeyrunner-interacting-with-views.html给出的代码,但是当我尝试执行代码时,我得到以下错误:

Traceback (most recent call last):
  File "C:\Users\gur31265\workspace\MonkeyRunnerForSmartRecorder\com\test\Runner.py", line 23, in <module>
    from com.dtmilano.android.viewclient import ViewClient
ImportError: No module named dtmilano

我将 Eclipse 与 PyDev 和 Jython 2.5.3 一起使用。我还在 Windows 7 机器上运行的 Eclipse 上配置了 Python 32。其他 Python 脚本运行良好,但我不知道为什么 dtmilano 博客上给出的代码会导致此错误。我还安装了 AndroidViewClient 并在系统路径中设置了 ANDROID_VIEW_CLIENT_HOME。请帮忙。

4

3 回答 3

1

这花了我一点时间来解决。确保在导入 MonkeyRunner 之前将 AndroidViewClient 源目录附加到路径。

以下将失败ImportError: No module named dtmilano

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
sys.path.append('/path/to/android_view_client_home/src')
from com.dtmilano.android.viewclient import ViewClient

但是,如果您只是切换顺序,它将起作用:

sys.path.append('/path/to/android_view_client_home/src')
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
from com.dtmilano.android.viewclient import ViewClient

似乎一旦导入comMonkeyRunner 的包,它只会在该包中查找dtmilano. 但是,如果com在您导入任何内容之前这两个包都在路径中,它将知道在这两个位置中查找。

于 2013-03-15T22:23:47.993 回答
0

您可以在http://dtmilano.blogspot.ca/2012/09/monkeyrunner-importing-from-pythonpath.html从 Eclipse 和 PyDev 以及命令行中找到有关如何使用PYTHONPATH和环境变量的详细说明。ANDROID_VIEW_CLIENT_HOME

简要地:

#!/usr/bin/env monkeyrunner
import re
import sys
import os
import java

# This must be imported before MonkeyRunner and MonkeyDevice,
# otherwise the import fails.
# PyDev sets PYTHONPATH, use it
try:
    for p in os.environ['PYTHONPATH'].split(':'):
       if not p in sys.path:
          sys.path.append(p)
except:
    pass

try:
    sys.path.append(os.path.join(os.environ['ANDROID_VIEW_CLIENT_HOME'], 'src'))
except:
    pass

from com.dtmilano.android.viewclient import ViewClient, View
from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
于 2012-09-17T00:39:10.020 回答
0

使用位于 android SDK 中的 monkeyrunner 来运行您的代码。例如:要编译一个名为 help.py 的文件,请使用以下命令: c:>monkeyrunner help.py 相同的命令也适用于 linux 环境。

于 2012-10-12T07:56:54.937 回答