我想创建自己的模块来返回Mysql游标,但是我的模块依赖于import mysql.connector和from mysql.connector import 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))发布于 2020-06-14 22:56:24
让我来解释一下你犯了什么错误,以及解决的方法。您从mysql导入了connector,从mysql.connector导入了Error,因此只有connector和Error。您不能像在except mysql.connector.Error as error中那样使用mysql,因为您从未导入过mysql。所以可以通过使用import mysql来解决这个问题。这就像访问目录一样,当你在子目录中时,你不能对父目录进行操作。
发布于 2020-06-14 22:39:51
当您使用from时,它只接受该对象。也就是说,在您执行以下代码行之后:
from mysql.connector import Error您不需要使用此行中所写的mysql.connector:
except mysql.connector.Error as error:相反,正确的方法应该是只使用对象的名称,如下所示:
except Error as error:https://stackoverflow.com/questions/62373931
复制相似问题