2012-07-30 65 views
2

我想用我的monkeyrunner脚本来存储我的结果。我得到这个错误:用mySQL运行monkeyrunner python脚本

import MySQLdb 
ImportError: No module named named MySQLdb 

我使用Python编写我的monkeyrunner脚本。我在monkeyrunner所在的android-sdk/tools文件夹上运行脚本。我已经安装python-mySQL连接,当我在Python27文件夹(不在Android内部)中运行python脚本时它工作正常

如何将MySQLdb导入到我的monkeyrunner脚本中?

谢谢。

回答

0

Monkeyrunner使用jython,而不是python。因此,您可以使用python脚本连接到mysqldb。不使用jython脚本。

从monkeyrunner来说,要访问mySQL,你应该使用jxthon的zxJDBC包。 在您的monkeyrunner类路径中添加JDBC驱动程序。

zxJDBC包为Jython中的数据库连接提供了接近100%的Python DB API 2.0兼容接口。 下面的代码应该让你连接到mysql数据库。

from com.ziclix.python.sql import zxJDBC 
params = {} 
params['serverName'] = 'localhost' 
params['databaseName'] = 'ziclix' 
params['user'] = None 
params['password'] = None 
params['port'] = 3306 
db = apply(zxJDBC.connectx, ("org.gjt.mm.mysql.MysqlDataSource",), params) 

下面的链接可以详细说明这一点。

http://www.jython.org/archive/21/docs/zxjdbc.html

+0

你是什么意思在你的monkeyrunner类路径中添加JDBC驱动程序?我已经从http://dev.mysql.com/downloads/connector/j/下载了ConnectorJ,mysql-connector-java-5.1.21-bin。我应该把这个JAR文件放在哪里? – Tata 2012-07-30 07:25:49

+0

在你monkeyrunner的lib文件夹中,你应该放置包。 – 2012-07-30 09:09:25

0

保持简单。而不是处理罐子,版本和其他东西只是使用命令行:

#! /opt/android-sdk/tools/monkeyrunner 

import subprocess 

USER = 'myuser' 
PASSWORD = 'mypass' 
DB = 'mydb' 
p1 = subprocess.Popen([ "mysql", "--user=%s" % USER, "--password=%s" % PASSWORD, DB ], stdin=subprocess.PIPE) 

print p1.communicate('INSERT INTO t1 VALUES(1, "other")')