如何将项目导入模块?

时间:2020-06-14 14:32:46

标签: python init mysql-connector

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

2 个答案:

答案 0 :(得分:0)

当您使用from时,它将单独使用该对象。也就是说,执行此行之后:

from mysql.connector import Error

您无需使用此行中的mysql.connector

except mysql.connector.Error as error:

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

except Error as error:

答案 1 :(得分:0)

让我解释一下您犯了什么错误以及解决方法。 您从connector导入了mysql,从Error导入了mysql.connector,所以您只有connectorError。您无法像在mysql中那样使用except mysql.connector.Error as error,因为从未导入过mysql。 因此可以使用import mysql解决此问题。 就像在子目录中访问目录一样,您无法在父目录上执行操作。