我正在运行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
后,我得到了一个不相关的权限错误,现在我已经解决了,所以这就是我需要的!!!
8条答案
按热度按时间ckx4rj1h1#
解决方案是执行:
因为模块
connector
只有在显式导入时才可用:模块
mysql
中的__init__
文件不会导入模块connector
。如果
connector
在__init__
中通过以下方式导入,则可以隐式工作:from . import connector
。llew8vvj2#
在
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
,这解决了我的问题。希望这能为其他人在处理同样的错误时节省一些时间。yeotifhr3#
在安装mysql-connector-python之前,我用“pip install”艾德mysql-connector。我卸载了mysql-connector,并得到这个错误。
正如这个stackoverflow问题/答案所提到的,卸载然后重新安装mysql-connector-python使一切正常。
Python | MySQL | AttributeError: module 'mysql.connector' has no attribute 'connect'
a0x5cqrl4#
还有一点在许多教程中,他们没有以相同的方式安装python连接器。在这种情况下,import语句可能是问题的原因。试试下面的import语句。
aoyhnmkz5#
问题是我创建了一个名为“select.py”的脚本,我重命名了它,它又工作了。
qc6wkl3g6#
试试这个
9o685dep7#
我也遇到了同样的问题,但上述解决方案都不适用于我。不幸的是,我不得不尝试其他东西。我发现我使用的软件包不再工作了。这一定是一个混乱,我升级了我的包,所以我的脚本不再工作了。
我安装了这个包:https://pypi.org/project/mysql-connector-python/和我的脚本现在备份并运行。
bn31dyow8#
我使用python xenv连接到虚拟环境外的mysql。在尝试修复下面的错误很多次后:
通过升级我的Mac OS系统,卸载mysql-connector-python和mysql-connector,并重新安装mysql-connector-python,最终解决了这个问题。