MySQLdb是Python語言訪問mysql數據庫的一個模塊,若是你不肯定本身的Python環境中是否已經安裝了這個模塊,能夠打開Python shell,輸入import MySQLdb,若是是返回錯誤,那就代表沒有安裝這個Python模塊。下面就是在centos安裝它的流程以及在安裝過程當中遇到的一些問題:php
首先,在http://sourceforge.net/projects/mysql-python/ 這個網站上,咱們能夠下到這個類庫
html
而後解壓這個文件python
tar xfz MySQL-python-1.2.4b4.tar.gz
cd MySQL-python-1.2.4b4在site.cfg文件中,咱們須要作一下簡單的配置
mysql_config = /usr/bin/mysql_config
最後就是
mysql
python setup.py build python setup.py install
_mysql.c:740: 警告:隱式聲明函數 ‘mysql_debug’ _mysql.c: In function ‘_mysql_ConnectionObject_dump_debug_info’: _mysql.c:758: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:760: 警告:隱式聲明函數 ‘mysql_dump_debug_info’ _mysql.c:760: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_autocommit’: _mysql.c:784: 警告:隱式聲明函數 ‘mysql_query’ _mysql.c:784: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_commit’: _mysql.c:807: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_rollback’: _mysql.c:829: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_errno’: _mysql.c:941: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:942: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_error’: _mysql.c:957: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:958: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:958: 警告:傳遞參數 1 (屬於 ‘PyString_FromString’)時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_escape_string’: _mysql.c:982: 警告:隱式聲明函數 ‘mysql_escape_string’ _mysql.c: In function ‘_mysql_escape’: _mysql.c:1089: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_describe’: _mysql.c:1169: 錯誤:‘MYSQL_FIELD’ 未聲明 (在此函數內第一次使用) _mysql.c:1169: 錯誤:‘fields’ 未聲明 (在此函數內第一次使用) _mysql.c:1172: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1173: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1174: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1185: 警告:隱式聲明函數 ‘IS_NOT_NULL’ _mysql.c: In function ‘_mysql_ResultObject_field_flags’: _mysql.c:1205: 錯誤:‘MYSQL_FIELD’ 未聲明 (在此函數內第一次使用) _mysql.c:1205: 錯誤:‘fields’ 未聲明 (在此函數內第一次使用) _mysql.c:1208: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1209: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1210: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: 在頂層: _mysql.c:1251: 錯誤:expected declaration specifiers or ‘...’ before ‘MYSQL_ROW’ _mysql.c: In function ‘_mysql_row_to_tuple’: _mysql.c:1257: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1259: 警告:隱式聲明函數 ‘mysql_fetch_lengths’ _mysql.c:1259: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1259: 警告:賦值時將整數賦給指針,未做類型轉換 _mysql.c:1262: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:1263: 錯誤:‘row’ 未聲明 (在此函數內第一次使用) _mysql.c: 在頂層: _mysql.c:1276: 錯誤:expected declaration specifiers or ‘...’ before ‘MYSQL_ROW’ _mysql.c: In function ‘_mysql_row_to_dict’: _mysql.c:1281: 錯誤:‘MYSQL_FIELD’ 未聲明 (在此函數內第一次使用) _mysql.c:1281: 錯誤:‘fields’ 未聲明 (在此函數內第一次使用) _mysql.c:1283: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1285: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1285: 警告:賦值時將整數賦給指針,未做類型轉換 _mysql.c:1286: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1289: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:1290: 錯誤:‘row’ 未聲明 (在此函數內第一次使用) _mysql.c: 在頂層: _mysql.c:1315: 錯誤:expected declaration specifiers or ‘...’ before ‘MYSQL_ROW’ _mysql.c: In function ‘_mysql_row_to_dict_old’: _mysql.c:1320: 錯誤:‘MYSQL_FIELD’ 未聲明 (在此函數內第一次使用) _mysql.c:1320: 錯誤:‘fields’ 未聲明 (在此函數內第一次使用) _mysql.c:1322: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1324: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1324: 警告:賦值時將整數賦給指針,未做類型轉換 _mysql.c:1325: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1328: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:1329: 錯誤:‘row’ 未聲明 (在此函數內第一次使用) _mysql.c: 在頂層: _mysql.c:1351: 錯誤:expected declaration specifiers or ‘...’ before ‘MYSQL_ROW’ _mysql.c: In function ‘_mysql__fetch_row’: _mysql.c:1362: 錯誤:‘MYSQL_ROW’ 未聲明 (在此函數內第一次使用) _mysql.c:1362: 錯誤:expected ‘;’ before ‘row’ _mysql.c:1366: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘use’ 的成員 _mysql.c:1367: 錯誤:‘row’ 未聲明 (在此函數內第一次使用) _mysql.c:1367: 警告:隱式聲明函數 ‘mysql_fetch_row’ _mysql.c:1367: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1370: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:1373: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1381: 錯誤:提供給函數 ‘convert_row’ 的實參太多 _mysql.c: In function ‘_mysql_ResultObject_fetch_row’: _mysql.c:1405: 錯誤:expected declaration specifiers or ‘...’ before ‘MYSQL_ROW’ _mysql.c:1420: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1432: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘use’ 的成員 _mysql.c:1446: 警告:隱式聲明函數 ‘mysql_num_rows’ _mysql.c:1446: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_character_set_name’: _mysql.c:1513: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c: In function ‘_mysql_get_client_info’: _mysql.c:1604: 警告:隱式聲明函數 ‘mysql_get_client_info’ _mysql.c:1604: 警告:傳遞參數 1 (屬於 ‘PyString_FromString’)時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_ConnectionObject_get_host_info’: _mysql.c:1618: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1619: 警告:隱式聲明函數 ‘mysql_get_host_info’ _mysql.c:1619: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1619: 警告:傳遞參數 1 (屬於 ‘PyString_FromString’)時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_ConnectionObject_get_proto_info’: _mysql.c:1633: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1634: 警告:隱式聲明函數 ‘mysql_get_proto_info’ _mysql.c:1634: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_get_server_info’: _mysql.c:1648: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1649: 警告:隱式聲明函數 ‘mysql_get_server_info’ _mysql.c:1649: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1649: 警告:傳遞參數 1 (屬於 ‘PyString_FromString’)時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_ConnectionObject_info’: _mysql.c:1665: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1666: 警告:隱式聲明函數 ‘mysql_info’ _mysql.c:1666: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1666: 警告:賦值時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_ConnectionObject_insert_id’: _mysql.c:1698: 錯誤:‘my_ulonglong’ 未聲明 (在此函數內第一次使用) _mysql.c:1698: 錯誤:expected ‘;’ before ‘r’ _mysql.c:1700: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1702: 錯誤:‘r’ 未聲明 (在此函數內第一次使用) _mysql.c:1702: 警告:隱式聲明函數 ‘mysql_insert_id’ _mysql.c:1702: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_kill’: _mysql.c:1719: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1721: 警告:隱式聲明函數 ‘mysql_kill’ _mysql.c:1721: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_field_count’: _mysql.c:1740: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1742: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_num_fields’: _mysql.c:1757: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1758: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_num_rows’: _mysql.c:1773: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1774: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_ping’: _mysql.c:1803: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1804: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1806: 警告:隱式聲明函數 ‘mysql_ping’ _mysql.c:1806: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_query’: _mysql.c:1827: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1829: 警告:隱式聲明函數 ‘mysql_real_query’ _mysql.c:1829: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_select_db’: _mysql.c:1857: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1859: 警告:隱式聲明函數 ‘mysql_select_db’ _mysql.c:1859: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_shutdown’: _mysql.c:1878: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1880: 警告:隱式聲明函數 ‘mysql_shutdown’ _mysql.c:1880: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_stat’: _mysql.c:1905: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1907: 警告:隱式聲明函數 ‘mysql_stat’ _mysql.c:1907: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:1907: 警告:賦值時將整數賦給指針,未做類型轉換 _mysql.c: In function ‘_mysql_ConnectionObject_store_result’: _mysql.c:1928: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1929: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:1938: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_thread_id’: _mysql.c:1967: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1969: 警告:隱式聲明函數 ‘mysql_thread_id’ _mysql.c:1969: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_use_result’: _mysql.c:1989: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:1990: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:1999: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_dealloc’: _mysql.c:2017: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c: In function ‘_mysql_ConnectionObject_repr’: _mysql.c:2029: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:2030: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_data_seek’: _mysql.c:2048: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:2049: 警告:隱式聲明函數 ‘mysql_data_seek’ _mysql.c:2049: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_row_seek’: _mysql.c:2062: 錯誤:‘MYSQL_ROW_OFFSET’ 未聲明 (在此函數內第一次使用) _mysql.c:2062: 錯誤:expected ‘;’ before ‘r’ _mysql.c:2064: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:2065: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘use’ 的成員 _mysql.c:2070: 錯誤:‘r’ 未聲明 (在此函數內第一次使用) _mysql.c:2070: 警告:隱式聲明函數 ‘mysql_row_tell’ _mysql.c:2070: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:2071: 警告:隱式聲明函數 ‘mysql_row_seek’ _mysql.c:2071: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_row_tell’: _mysql.c:2083: 錯誤:‘MYSQL_ROW_OFFSET’ 未聲明 (在此函數內第一次使用) _mysql.c:2083: 錯誤:expected ‘;’ before ‘r’ _mysql.c:2085: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:2086: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘use’ 的成員 _mysql.c:2091: 錯誤:‘r’ 未聲明 (在此函數內第一次使用) _mysql.c:2091: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c:2092: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: In function ‘_mysql_ResultObject_dealloc’: _mysql.c:2100: 警告:隱式聲明函數 ‘mysql_free_result’ _mysql.c:2100: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘result’ 的成員 _mysql.c: 在頂層: _mysql.c:2331: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 _mysql.c:2338: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:2345: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:2352: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:2359: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘connection’ 的成員 _mysql.c:2422: 錯誤:‘_mysql_ResultObject’ 沒有名爲 ‘converter’ 的成員 _mysql.c:2422: 錯誤:初始值設定元素不是常量 _mysql.c:2422: 錯誤:(在 ‘_mysql_ResultObject_memberlist[0].offset’ 的初始化附近) _mysql.c: In function ‘_mysql_ConnectionObject_getattr’: _mysql.c:2444: 錯誤:‘_mysql_ConnectionObject’ 沒有名爲 ‘open’ 的成員 error: command 'gcc' failed with exit status 1
yum install mysql-devel
running build running build_py copying MySQLdb/release.py -> build/lib.linux-i686-2.4/MySQLdb running build_ext building '_mysql' extension gcc -pthread -fno-strict-aliasing -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-siz e=4 -m32 -march=i386 -mtune=generic -fasynchronous-unwind-tables -D_GNU_SOURCE -fPIC -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1. 2.4b4 -I/usr/local/mysql/include/mysql -I/usr/include/python2.4 -c _mysql.c -o build/temp.linux-i686-2.4/_mysql.o -g -DUNIV_LINUX _mysql.c: In function ‘_mysql_ConnectionObject_Initialize’: _mysql.c:602: error: expected expression before ‘)’ token error: command 'gcc' failed with exit status 1這裏是源碼有些問題:在_mysql.c 602行附近,找到下邊的代碼:
if (!PyArg_ParseTupleAndKeywords(args, kwargs, #ifdef HAVE_MYSQL_OPT_READ_TIMEOUT "|ssssisOiiisssiOii:connect", #else "|ssssisOiiisssiOi:connect", #endif kwlist, &host, &user, &passwd, &db, &port, &unix_socket, &conv, &connect_timeout, &compress, &named_pipe, &init_command, &read_default_file, &read_default_group, &client_flag, &ssl, &local_infile, #ifdef HAVE_MYSQL_OPT_READ_TIMEOUT &read_timeout #endif )) return -1;
if (!PyArg_ParseTupleAndKeywords(args, kwargs, #ifdef HAVE_MYSQL_OPT_READ_TIMEOUT "|ssssisOiiisssiOii:connect", #else "|ssssisOiiisssiOi:connect", #endif kwlist, &host, &user, &passwd, &db, &port, &unix_socket, &conv, &connect_timeout, &compress, &named_pipe, &init_command, &read_default_file, &read_default_group, &client_flag, &ssl, &local_infile #ifdef HAVE_MYSQL_OPT_READ_TIMEOUT , &read_timeout #endif )) return -1;而後再執行
python setup.py build python setup.py install
參考連接linux
[1] http://bbs.chinaunix.net/thread-3574499-1-1.htmlsql
[2]http://cooler1217.iteye.com/blog/1497472shell
[3]http://www.phpv5.com/blog/mysqlpython-setup-error數據庫
[4]http://www.cnblogs.com/czh-liyu/archive/2008/04/13/1151758.htmlexpress