ImportError:没有模块命名验证
问题描述:
我已经安装了MySQL连接器/ Python模块。它显示在/usr/lib/python2.7/site-packages/mysql/connector/目录中。我也将这个目录添加到$ PATH中。ImportError:没有模块命名验证
当我执行下面的Python程序时,出现以下错误。
import mysql.connector
config = {
"database": "XXXX",
"host": "XXXX",
'user': 'XXXX',
"password": "XXXX",
"table": "XXXX",
"charset": "utf8"
}
try:
cnx = mysql.connector.connect(**config)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_ACCESS_DENIED_ERROR:
print("Something is wrong with your user name or password")
elif err.errno == errorcode.ER_BAD_DB_ERROR:
print("Database does not exists")
else:
print(err)
else:
cnx.close()
错误:
Traceback (most recent call last):
File "config.py", line 1, in <module>
import mysql.connector
File "/usr/lib/python2.7/site-packages/mysql/connector/__init__.py", line 28, in <module>
File "/usr/lib/python2.7/site-packages/mysql/connector/connection.py", line 39, in <module>
File "/usr/lib/python2.7/site-packages/mysql/connector/protocol.py", line 34, in <module>
ImportError: No module named authentication
在目录/usr/lib/python2.7/site-packages/mysql/connector/,有一个authentication.py和authentication.pyc。
我不明白的问题...
答
的问题是该目录组成的MySQL包中的文件是PYTHONPATH,但没有读取权限(除了根)。答案是chmod a+x
目录和chmod a+r *.py
该目录和子目录中的文件。
在文件“/usr/lib/python2.7/site-packages/mysql/connector/protocol.py”中,尝试将'from .authentication import get_auth_plugin'更改为'from mysql.connector.authentication import get_auth_plugin'。 – xbello 2014-09-24 17:56:59
我已经提出了建议更改..但得到完全相同的错误。什么是身份验证插件?我看到get_auth_plugin()在authentication.py中定义 – 2014-09-24 20:05:41
您确定您将dir添加到PYTHONPATH中吗?如果您没有这种行为,请执行以下操作:http://www.stereoplex.com/blog/understanding-imports-and-pythonpath – xbello 2014-09-24 21:09:20