我在Windows 7(64位)计算机上使用Maya 2011(64位)和MySQL 5.5(64位)。我试图通过python将maya与Mysqldb连接起来。所以我将连接器文件复制到maya \ python \ lib \ site包中。
我能够导入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'#
我尝试验证env-path变量,替换连接器文件,但问题仍然存在。
由于是初学者,我无法确定确切的问题 我要求您提出宝贵的建议
答案 0 :(得分: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")
答案 1 :(得分:0)
在这里,您有两件事分配给db
。 mysql_connect("localhost", “root”, “test”, “mydbt")
似乎正在返回None
,因此当您稍后致电db.cursor()
时,您会收到该错误。
确保正确覆盖db
变量(在这种情况下,看起来你不是)。