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'