Python - AttributeError:模块'mysql'没有属性'connector'

Posted

技术标签:

【中文标题】Python - AttributeError:模块\'mysql\'没有属性\'connector\'【英文标题】:Python - AttributeError: module 'mysql' has no attribute 'connector'Python - AttributeError:模块'mysql'没有属性'connector' 【发布时间】:2018-06-16 12:23:06 【问题描述】:

我是python的新手,我正在使用python 3.6和mysql网站上的mysql连接器

pip install --allow-external mysql-connector-python mysql-connector-python

一切都很顺利。我尝试了 mysql 网站上的 3 个示例 创建数据库和表,插入,选择。

但在第二个示例之后它停止工作并给出错误

Traceback (most recent call last):
  File "select.py", line 3, in <module>
    import mysql.connector
  File "C:\Users\preet\AppData\Local\Programs\Python\Python36\lib\site-packages\
mysql\connector\__init__.py", line 37, in <module>
    from .connection import MySQLConnection
  File "C:\Users\preet\AppData\Local\Programs\Python\Python36\lib\site-packages\
mysql\connector\connection.py", line 45, in <module>
    from .network import MySQLUnixSocket, MySQLTCPSocket
  File "C:\Users\preet\AppData\Local\Programs\Python\Python36\lib\site-packages\
mysql\connector\network.py", line 28, in <module>
    import socket
  File "C:\Users\preet\AppData\Local\Programs\Python\Python36\lib\socket.py", li
ne 52, in <module>
    import os, sys, io, selectors
  File "C:\Users\preet\AppData\Local\Programs\Python\Python36\lib\selectors.py",
 line 11, in <module>
    import select
  File "C:\Users\preet\Desktop\ptyhon-newspaper\select.py", line 7, in <module>
    cnx = mysql.connector.connect(user='root', password='Jinqm21k',
AttributeError: module 'mysql' has no attribute 'connector'

示例代码

from __future__ import print_function
from datetime import date, datetime, timedelta
import mysql.connector



cnx = mysql.connector.connect(user='root', password='****',
                              host='localhost',
                              database='worpress')
cursor = cnx.cursor()                             

query = ("SELECT first_name, last_name, hire_date FROM employees "
         "WHERE hire_date BETWEEN %s AND %s")

hire_start = datetime.date(1999, 1, 1)
hire_end = datetime.date(1999, 12, 31)

cursor.execute(query, (hire_start, hire_end))

for (first_name, last_name, hire_date) in cursor:
  print(",  was hired on :%d %b %Y".format(
    last_name, first_name, hire_date))


cursor.close()  
cnx.close()

所有示例都停止工作,包括创建、插入、选择

我无法弄清楚它有什么问题

【问题讨论】:

将脚本命名为 select.py 以外的名称。您与库模块名称冲突。 @john 在更改名称后无法正常工作,没有运气 你还有select.pyc吗?如果是这样,请将其删除。 @JohnGordon ,它自己开始工作了,我不知道怎么回事,可能是系统的问题 【参考方案1】:

您的问题是 mysql 库试图导入一些包,这些包导入了被模块“select.py”隐藏的“select”包。请提供更新的回溯,重命名“select.py”后现在无法正常工作的内容。

我还建议您不要在 .py 文件本身中编写代码,除非您希望在模块导入时执行此代码。改为创建一个例程并在 __main__ 部分调用它。

from __future__ import print_function
from datetime import date, datetime, timedelta
import mysql.connector

def print_employees():
    cnx = mysql.connector.connect(user='root', password='Jinqm21k',
                              host='localhost',
                              database='worpress')
    cursor = cnx.cursor()
    ...

if __name__ = '__main__':
    print_employees()

【讨论】:

无论文件名如何,引用相同,与 test.py 相同 能否提供新的回溯?

以上是关于Python - AttributeError:模块'mysql'没有属性'connector'的主要内容,如果未能解决你的问题,请参考以下文章

Python:AttributeError:'str'对象没有属性'datetime'

AttributeError: module 'tensorflow' has no attribute 'enable_eager_execution'

Python类继承:AttributeError:'[SubClass]'对象没有属性'xxx'

为啥python中会出现这个AttributeError?

Python 错误:AttributeError:“模块”对象没有属性“heappush”

Python-“ AttributeError:'str'对象没有属性'Tc'(Tc是参数之一)[关闭]