您的位置:

解决Python使用MySQL库时出现no module named mysqldb错误

一、安装MySQL-python包

MySQL-python包是一个用于Python与MySQL交互的库,在使用Python连接MySQL数据库时需要使用这个库,如果没有安装或者版本不正确,就会出现“no module named mysqldb”错误。

可以通过pip命令安装MySQL-python包。如果pip没有安装,需要先安装pip。

    
        $ sudo apt-get install python-pip
        $ pip install MySQL-python
    

如果使用的是Python3,则需要安装PyMySQL库。

    
        $ pip install PyMySQL
    

二、安装MySQL Connector/Python驱动

MySQL Connector/Python是MySQL官方提供的Python驱动程序,可以视为Python程序与MySQL之间的桥梁,使用这个驱动程序可以轻松地在Python代码中设置和处理MySQL连接、执行SQL查询/语句、处理结果等。

官方网址:https://dev.mysql.com/downloads/connector/python/。

下载后的文件名为mysql-connector-python-xxx.tar.gz,解压后进入解压目录:

    
        $ tar zxvf mysql-connector-python-xxx.tar.gz
        $ cd mysql-connector-python-xxx
    

使用下面的命令来安装MySQL Connector/Python:

    
        $ python setup.py install
    

三、检查Python版本与MySQL版本

如果以上两种方法都无法解决“no module named mysqldb”错误,那么很可能是Python版本和MySQL版本不兼容所致。在Python 3.x 中,MySQLdb 被 PyMySQL 和 mysqlclient 替代,因此可能会导致某些软件包找不到 MySQLdb 等常见错误。

运行下面的Python命令以查看Python版本:

    
        $ python --version
    

运行下面的MySQL命令以查看MySQL版本:

    
        $ mysql -V
    

确保Python版本与MySQL版本兼容。

四、安装其他依赖项

某些库可能需要其他软件包或库来正常工作。例如,在Ubuntu中,要使用MySQL Connector/Python,需要先安装libmysqlclient-dev软件包:

    
        $ sudo apt-get install libmysqlclient-dev
    

五、代码示例

下面是一个示例程序,演示如何使用Python连接MySQL数据库:

    
        import MySQLdb

        # 打开数据库连接
        db = MySQLdb.connect(host="localhost", user="root",
                             passwd="123456", db="testdb")

        # 使用cursor()方法获取操作游标 
        cursor = db.cursor()

        # 使用execute方法执行SQL语句
        cursor.execute("SELECT VERSION()")

        # 使用 fetchone() 方法获取一条数据
        data = cursor.fetchone()

        print "Database version : %s " % data

        # 关闭数据库连接
        db.close()