提问者:小点点

如何将物料导入模块?


我想创建自己的模块来返回Mysql游标,但是我的模块依赖于import Mysql.Connectorfrom 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))

共2个答案

匿名用户

当您使用from时,它单独使用该对象。 也就是说,你执行了这一行之后:

from mysql.connector import Error

您不需要使用mysql.connector:

except mysql.connector.Error as error:

相反,正确的方法是只使用对象的名称,如下所示:

except Error as error:

匿名用户

让我解释一下你犯了什么错误以及解决它的方法。 您从MySQL导入了Connector,从MySQL.Connector导入了Error,因此只有ConnectorError。 您不能像在中那样使用MySQL,但mysql.connector.error作为error除外,因为您从未导入MySQL。 所以可以通过使用import mysql来解决这个问题。 这就像访问目录一样,当你在子目录中时,你不能在父目录上执行操作。