【问题标题】:Trying to get monkeyrunner to include an external .py file试图让 monkeyrunner 包含一个外部 .py 文件
【发布时间】:2012-10-10 15:27:08
【问题描述】:

我正在尝试让 monkeyrunner 接受外部 .py 文件。 .py 文件只是有一些功能,没什么特别的。

mainscript.py:

import unittest

import logging
import sys
sys.path.append("C:\path\to\helperscripts\")
from monkeyHelper import monkeyHelper


#log to STDERR
logging.basicConfig(level=logging.DEBUG)

class TestDepthOneFunctions(unittest.TestCase):  

def setUp(self):
    mh = monkeyHelper()
    self.device = mh.setupDevice()
    #monkeyHelper.setupDevice()


def test_myMusic(self):
    self.assertEqual(self.device,3)

def tearDown(self):
    pass

if __name__ == '__main__':
    unittest.main()

monkeyHelper.py:

from com.android.monkeyrunner import MonkeyRunner, MonkeyDevice
import logging
import sys


class monkeyHelper(object):

    def __init__(self):
        return

    def setupDevice(self):
        return 3

我试过跑步 #>monkeyrunner.bat mainscript.py 它不起作用。我已经看到了 monkeyrunner.bat 输出的完整命令行 - 有没有办法将 C:\path\to\helperScripts 添加到该命令行?这是 monkeyrunner.bat 吐出的内容:

C:\Windows\system32\java.exe -Xmx512m -Djava.ext.dirs=lib\;lib\x86_64 -Dcom.android.monkeyrunner.bindir=..\framework -jar lib\monkeyrunner.jar mainscript.py

我得到的错误是:

import monkeyHelper
ImportError: No module named monkeyHelper

我整天都在努力解决这个问题 - 感谢任何帮助!

【问题讨论】:

    标签: android python jython monkeyrunner


    【解决方案1】:

    如果你使用monkeyrunner 您可以在

    下添加一个文件夹'lib'
    C:\Documents and Settings\<user name>\Local Settings\Application Data\Android\android-sdk\tools\lib'
    

    然后把你的py文件放在下面

    C:\Documents and Settings\<user name>\Local Settings\Application Data\Android\android-sdk\tools\lib\lib
    

    如果您的文件名为 myPyFile.py

    只是

    from myPyFile import *
    

    更新: 注意如果你要更新Android SDK工具,请先备份你的文件,我上次更新时,我在lib中的文件被删除了。

    【讨论】:

      【解决方案2】:

      由于不能随意将\放入字符串中,试试:

      sys.path.append(r"C:\path\to\helperscripts")
      

      r 表示该字符串将被视为原始字符串,这意味着所有转义码都将被忽略。

      还要确保 helperMonkey.py 在该路径中,

      【讨论】:

      • FACEPALM 是的,解决了。
      • 如果这是修复它的原因,您应该接受 eladc 的答案作为正确答案(:
      猜你喜欢
      • 2012-02-07
      • 2020-05-03
      • 2021-07-19
      • 2021-04-24
      • 1970-01-01
      • 2023-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多