将Maya 2011与Mysqldb连接
我在一台运行Windows 7(64位)的电脑上使用Maya 2011(64位)和MySQL 5.5(64位)。我尝试通过Python把Maya和MySQL数据库连接起来。所以我把连接器的文件复制到了maya\python\lib\site-packages文件夹里。
我能够顺利导入MYsqldb模块,没有出现错误。但是当我尝试调用游标对象(用来查询数据)时,发现Maya并没有识别这个游标对象。
以下是我的示例代码:
import MySQLdb as mb
import maya.cmds as cmds
def mysql_connect(hostname, username, password, dbname):
db = mb.connect(host=hostname,user=username,passwd=password,db=dbname)
db = mysql_connect("localhost", “root”, “test”, “mydbt")
dbcursor = db.cursor()
dbcursor.execute("select * from maya")
但是代码抛出了以下错误:
错误:AttributeError: ‘NoneType’对象没有属性‘cursor’ #
我尝试检查环境变量,替换连接器文件,但问题依然存在。
作为一个初学者,我无法确定具体的问题所在。
我希望能得到大家的宝贵建议。
2 个回答
0
这里,你把两个东西都赋值给了 db
。看起来 mysql_connect("localhost", “root”, “test”, “mydbt")
返回的是 None
,所以当你后面调用 db.cursor()
时,就会出现错误。
确保你正确地覆盖了 db
这个变量(在这个例子中,看起来你没有做到这一点)。
1
你没有从 mysql_connect
函数中返回任何东西,所以它返回的是 None
。当你这样做的时候:
db = mysql_connect("localhost", “root”, “test”, “mydbt")
db
就变成了 None
。试着改成:
db = mb.connect(host=hostname,user=username,passwd=password,db=dbname)
用
return mb.connect(host=hostname,user=username,passwd=password,db=dbname)
话说回来,我不太确定定义一个函数来做一件事是否有用。最好是像这样:
import MySQLdb as mb
import maya.cmds as cmds
db = mb.connect(host="localhost",user=“root”,passwd=“test”,db=“mydbt")
dbcursor = db.cursor()
dbcursor.execute("select * from maya")