2011-10-13 41 views
0

我在Windows 7(64位)机器上使用Maya 2011(64位)和MySQL 5.5(64位)。我试图通过python连接Mysqldb与玛雅。所以我将连接器文件复制到maya \ python \ lib \ site包中。连接Maya 2011与Mysqldb

我能够导入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") 


但代码引发以下错误:

Error: AttributeError: ‘NoneType’ object has no attribute ‘cursor’ #

我试图验证ENV路径变量,取代了连接器文件,但问题仍然存在。

既然是初学者,我无法识别确切的问题。
我请求你的宝贵建议

回答

0

在这里,你有两件事情分配给db。看起来mysql_connect("localhost", “root”, “test”, “mydbt")正在返回None,所以当您稍后调用db.cursor()时,会出现该错误。

确保你正确覆盖了db变量(在这种情况下,它看起来像你不是)。

+0

谢谢TorelTwiddler。我回来时犯了一个错误。我从avaris和你的反馈中了解到了这一点。谢谢 – sasecse

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") 
+0

感谢您提出宝贵建议Avaris。作为一名初学者,我对这一步感到震惊。最后,我能够了解我的错误。再次感谢你。它的工作。 :) – sasecse