我想创建自己的模块来返回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))
当你使用 from
,它只取该对象。也就是说,在你执行了这一行之后。
from mysql.connector import Error
你不需要使用 mysql.connector
如这一行所写。
except mysql.connector.Error as error:
相反,正确的做法是只使用对象的名称,就像这样。
except Error as error:
让我解释一下你犯了什么错误以及解决的方法。connector
从 mysql
和 Error
从 mysql.connector
所以你只有 connector
和 Error
. 你不能用 mysql
如同 except mysql.connector.Error as error
因为你从来没有进口 mysql
.所以可以通过使用 import mysql
.这和访问目录一样,当你在子目录中时,你不能对父目录进行操作。