AttributeError: 模块 'mysql' 没有属性 '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'

我通过在 此处 下载软件包安装了 mysql python 模块。我试过 sudo apt-get install python-mysql.connector 无济于事。任何指针?

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

原文由 planpony69 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.3k
2 个回答

解决方案是执行:

 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']


模块中的 __init__ 文件 mysql 不导入模块 connector

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

如果 connector 被导入内部 __init__ with : from . import connector ,这可能会隐式工作。

原文由 PRMoureu 发布,翻译遵循 CC BY-SA 3.0 许可协议

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

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

原文由 Gail Sparks 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题