2014-09-24 119 views
0

我已经安装了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。

我不明白的问题...

+0

在文件“/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

+0

我已经提出了建议更改..但得到完全相同的错误。什么是身份验证插件?我看到get_auth_plugin()在authentication.py中定义 – 2014-09-24 20:05:41

+1

您确定您将dir添加到PYTHONPATH中吗?如果您没有这种行为,请执行以下操作:http://www.stereoplex.com/blog/understanding-imports-and-pythonpath – xbello 2014-09-24 21:09:20

回答

1

的问题是该目录组成的MySQL包中的文件是PYTHONPATH,但没有读取权限(除了根)。答案是chmod a+x目录和chmod a+r *.py该目录和子目录中的文件。

相关问题