2

我正在尝试使用 MySQL 将我的结果与我的 monkeyrunner 脚本一起存储。我收到此错误:

import MySQLdb
ImportError: No module named named MySQLdb

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

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

谢谢。

4

2 回答 2

0

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

从 monkeyrunner,要访问 mySQL,您应该使用 zxJDBC 包用于 jython。在你的 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

于 2012-07-30T05:03:03.263 回答
0

把事情简单化。无需处理 jars、版本和其他内容,只需使用命令行:

#! /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")')
于 2012-08-02T04:35:29.583 回答