我想创建自己的模块来返回Mysql游标,但是我的模块依赖于import Mysql.Connector
和from Mysql.ConnectorImport error
。
我怎么解决这个? 是否与__init__.py
文件的目录位置有关? 我正在获取NameError:name'mysql'is not defined
。
from mysql import connector
from mysql.connector import Error
class SqlCnt:
def __init__(self, db):
"""Constructor for this class."""
self.db = db
@classmethod
def get_input(self):
db = input("Enter the database:")
try:
cnx = mysql.connector.connect(
host="localhost",
database=''+db,
port=******,
user="root",
password="*******",
raise_on_warnings=True,
use_pure=False,
autocommit=True
)
print("Connection made,cursor object returned")
cursor = cnx.cursor(prepared=True)
return cursor
except mysql.connector.Error as error:
print("Failed to connect {}".format(error))
当您使用from
时,它单独使用该对象。 也就是说,你执行了这一行之后:
from mysql.connector import Error
您不需要使用mysql.connector
:
except mysql.connector.Error as error:
相反,正确的方法是只使用对象的名称,如下所示:
except Error as error:
让我解释一下你犯了什么错误以及解决它的方法。 您从MySQL
导入了Connector
,从MySQL.Connector
导入了Error
,因此只有Connector
和Error
。 您不能像在中那样使用
除外,因为您从未导入MySQL
,但mysql.connector.error作为errorMySQL
。 所以可以通过使用import mysql
来解决这个问题。 这就像访问目录一样,当你在子目录中时,你不能在父目录上执行操作。