0

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 変数を確認しようとしましたが、問題は解決しません。

初心者なので、正確な問題を特定できません。
貴重なご提案をお願いします

4

2 に答える 2

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")
于 2011-10-13T17:56:35.943 に答える
0

ここでは、 に 2 つのものが割り当てられていdbます。mysql_connect("localhost", “root”, “test”, “mydbt")が を返しているように見えるNoneので、後で呼び出すdb.cursor()と、そのエラーが発生します。

変数を正しく上書きしていることを確認してくださいdb(この場合、そうではないようです)。

于 2011-10-13T17:51:49.740 に答える