AttributeError: module 'mysql' has no attribute 'connector'

AttributeError: module 'mysql' has no attribute 'connector'

我是 运行 Ubuntu 16.04,正在尝试连接到 python 中的 mysql:

    import mysql
    username = 'root'

    cnx = mysql.connector.connect(user=username, database='db')
    cnx.close()

但是我得到一个错误:

    File "pysql1.py", line 4, in <module>
      cnx = mysql.connector.connect(user=username, database='db')
    AttributeError: module 'mysql' has no attribute 'connector'

我通过下载包 here 安装了 mysql python 模块。我试过 sudo apt-get install python-mysql.connector 无济于事。有什么指点吗?

编辑:添加 import mysql.connector 后我遇到了一个不相关的权限错误,我现在已经解决了,这就是我需要的东西!!!

解决方案是执行:

import mysql.connector # or from mysql import connector

因为模块 connector 只有在您显式导入时才可用:

import mysql

print(dir(mysql))
>>> ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
'__package__', '__path__', '__spec__']

import mysql.connector

print(dir(mysql))
>>> ['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', 
'__package__', '__path__', '__spec__', 'connector']

模块 mysql 中的 __init__ 文件没有导入模块 connector.

mysql
|_______ __init__.py # no import at this level
|_______ connector
         |________ __init__.py

如果 connector 是在 __init__ 中导入的,这可以隐式工作:from . import connector.

import mysql.connector 并检查权限后,我仍然遇到同样的错误。我是 运行 我在 MacOS 上使用 bash 的脚本。在寻找解决方案数小时后,在 mysql 论坛上遇到了这个 post:https://forums.mysql.com/read.php?50,584171,584729#msg-584729

poster提到你的python脚本不能命名为mysql.py我的脚本被命名为types.py,所以我将它重命名为setup-types.py ] 这解决了我的问题。希望这可以在处理同样的错误时为其他人节省一些时间。

再观察一次。在许多教程中,他们没有以相同的方式安装 python 连接器。在那些时候,导入语句可能是问题的原因。试试下面的导入语句。

import mysql.connector as mysql

问题是我创建了一个名为“select.py”的脚本,我将其重命名并再次运行。