ImportError: No module named MySQLdb解决办法

http://blog.slogra.com/post-429.html

http://blog.sina.com.cn/s/blog_74a7e56e0101a7qy.html

今天突发奇想在服务器上使用web页面查看系统状态,但又不想去搭建太复杂的监控系统,就在网上找了个相对容易的监控方式,但做到python那步的时候居然报ImportError: No module named MySQLdb,但博主说他是ubuntu的系统可以直接使用apt-get install python-mysqldb,而我是centos系统,只能自己去下源码包来安装.
系统:centos 5.9
需要的软件包:setuptools-0.6c11.tar.gz
MySQL-python-1.2.3.tar.gz

1.安装setuptools-0.6c11
wget --no-check-certificate  http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz
tar zxf setuptools-0.6c11.tar.gz && cd setuptools-0.6c11
python setup.py build
python setup.py install

2.安装MySQL-python-1.2.3
wget http://sourceforge.net/projects/mysql-python/files/mysql-python/1.2.3/MySQL-python-1.2.3.tar.gz/download
tar zxf MySQL-python-1.2.3.tar.gz && cd MySQL-python-1.2.3
python setup.py build
python setup.py install

如果在执行python setup.py build时,报EnvironmentError: mysql_config not found的话,先查找mysql_config的位置,使用find / -name mysql_config,我的是在/usr/local/mysql/bin/mysql_config,然后修改MySQL-python-1.2.3目录下的site.cfg文件,去掉mysql_config=XXX这行的注释,并改成mysql_config=/usr/local/mysql/bin/mysql_config,以自己机器的为准.

再执行下面命令就可以了
python setup.py build
python setup.py install

好了,解决了MySQLdb的问题,我要继续去研究web监控系统的东西了.

-------------------------------------------------

ImportError: No module named MySQLdb
该错误是源于我们没有安装Python连接MySQL所需的MySQLdb库而引起。
MySQL是最流行的开源数据库之一,但在Python标准库中并没有集成MySQL接口程序,MySQLdb是一个第三方包,需独立下载并安装。Python连接MySQL的关键之处在于设置数据库连接,在连接成功之后,其实不管后端是何种数据库,对DB-API对象的属性和方法进行操作都是一样的。
下载地址:http://sourceforge.net/projects/mysql-python/
对于Linux来说,有多重包管理系统和安装机制。如果使用的是包含某种包管理器的Linux,那么可以很轻松的安装Python MySQLdb库。
Linux Fedora, CentOS系统:yum install MySQL-python
Linux Ubuntu操作系统:apt-get install python-mysqldb
下面的代码演示了如何创建一个表,插入和访问数据等简单操作:
#!/usr/bin/env python
import MySQLdb
def main():
    print '*** Connecting to database'
    cxn=MySQLdb.connect(host='192.168.1.108', user='root', passwd='123456', db='test')
    if not cxn:
        print 'ERROR: connection not supported, exiting'
    return
    cur=cxn.cursor()
    print '*** Creating users table'
    cur.execute('CREATE TABLE users(login VARCHAR(8), uid INT)')
    print '*** Inserting some users'
    cur.execute("INSERT INTO users VALUES('john', 7000)")
    cur.execute("INSERT INTO users VALUES('jane', 7001)")
    cur.execute("INSERT INTO users VALUES('bob', 7200)")
    print '*** Search for users starting with j'
    cur.execute("SELECT * FROM users WHERE login LIKE 'j%'")
    for data in cur.fetchall():
        print '%s\t%s' % data
    cur.close()
    cxn.commit()
    cxn.close()
if __name__ == '__main__':
    main()
上一篇:Python错误“ImportError: No module named MySQLdb”解决方法


下一篇:ImportError: No module named MySQLdb