CentOS下python-mysqldb安裝過程居然耗費了3個小時,遇到詭異的問題就是python setup.py build 會出現一大堆亂碼。看到網上有朋友也遇到同樣的問題,貼出來分享一下,希望能節約大家的時間。
_mysql.c: At top level:
_mysql.c:647: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c: In function ????_mysql_ConnectionObject_clear????:
_mysql.c:679: error: ????_mysql_ConnectionObject???? has no member named ????converter????
_mysql.c:680: error: ????_mysql_ConnectionObject???? has no member named ????converter????
_mysql.c:680: error: ????NULL???? undeclared (first use in this function)
_mysql.c:680: warning: statement with no effect
_mysql.c: At top level:
_mysql.c:687: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:715: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:731: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:749: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:768: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:794: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:816: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:848: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:874: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:901: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:916: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:933: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:949: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:967: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1002: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1033: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1035: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1065: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1095: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1129: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1161: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1197: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1221: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1246: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1271: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1310: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1349: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1354: error: expected declaration specifiers or ????...???? before ????PyObject????
_mysql.c:1357: error: expected declaration specifiers or ????...???? before ????_PYFUNC????
_mysql.c: In function ????_mysql__fetch_row????:
_mysql.c:1363: error: ????PyObject???? undeclared (first use in this function)
_mysql.c:1363: error: ????v???? undeclared (first use in this function)
_mysql.c:1363: error: invalid operands to binary *
_mysql.c:1363: warning: statement with no effect
_mysql.c:1364: error: ????_mysql_ResultObject???? has no member named ????use????
_mysql.c:1365: error: ????_mysql_ResultObject???? has no member named ????result????
_mysql.c:1365: warning: passing argument 1 of ????mysql_fetch_row???? from incompatible pointer type
_mysql.c:1367: error: ????Py_BEGIN_ALLOW_THREADS???? undeclared (first use in this function)
_mysql.c:1367: warning: statement with no effect
_mysql.c:1368: error: ????_mysql_ResultObject???? has no member named ????result????
_mysql.c:1368: warning: passing argument 1 of ????mysql_fetch_row???? from incompatible pointer type
_mysql.c:1369: error: ????Py_END_ALLOW_THREADS???? undeclared (first use in this function)
_mysql.c:1369: warning: statement with no effect
_mysql.c:1371: error: ????_mysql_ResultObject???? has no member named ????conn????
_mysql.c:1371: error: ????_mysql_ConnectionObject???? has no member named ????connection????
_mysql.c:1371: warning: passing argument 1 of ????mysql_errno???? from incompatible pointer type
_mysql.c:1372: error: ????_mysql_ResultObject???? has no member named ????conn????
_mysql.c:1376: warning: implicit declaration of function ????_PyTuple_Resize????
_mysql.c:1376: error: ????r???? undeclared (first use in this function)
_mysql.c:1379: warning: implicit declaration of function ????convert_row????
_mysql.c:1379: warning: statement with no effect
_mysql.c: At top level:
_mysql.c:1397: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1476: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1504: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1526: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1566: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1595: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1610: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1625: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1640: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1656: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1691: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1709: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1732: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1749: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1765: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1794: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1817: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1847: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1869: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1896: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1917: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1958: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:1978: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c: In function ????_mysql_ConnectionObject_dealloc????:
_mysql.c:2012: error: ????PyObject???? undeclared (first use in this function)
_mysql.c:2012: error: ????o???? undeclared (first use in this function)
_mysql.c:2012: error: invalid operands to binary *
_mysql.c:2012: warning: statement with no effect
_mysql.c:2015: error: ????_mysql_ConnectionObject???? has no member named ????open????
_mysql.c:2016: warning: implicit declaration of function ????_mysql_ConnectionObject_close????
_mysql.c:2016: error: ????NULL???? undeclared (first use in this function)
_mysql.c:2016: warning: statement with no effect
_mysql.c:2019: warning: implicit declaration of function ????PyMem_Free????
_mysql.c: At top level:
_mysql.c:2022: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2039: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2054: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2076: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c: In function ????_mysql_ResultObject_dealloc????:
_mysql.c:2098: error: ????_mysql_ResultObject???? has no member named ????result????
_mysql.c:2098: warning: passing argument 1 of ????mysql_free_result???? from incompatible pointer type
_mysql.c: At top level:
_mysql.c:2103: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2113: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????_mysql_ConnectionObject_methods????
_mysql.c:2328: error: array type has incomplete element type
_mysql.c:2329: error: ????T_INT???? undeclared here (not in a function)
_mysql.c:2329: warning: implicit declaration of function ????offsetof????
_mysql.c:2329: error: expected expression before ????_mysql_ConnectionObject????
_mysql.c:2329: error: ????RO???? undeclared here (not in a function)
_mysql.c:2336: error: ????T_OBJECT???? undeclared here (not in a function)
_mysql.c:2336: error: expected expression before ????_mysql_ConnectionObject????
_mysql.c:2343: error: ????T_UINT???? undeclared here (not in a function)
_mysql.c:2343: error: expected expression before ????_mysql_ConnectionObject????
_mysql.c:2350: error: expected expression before ????_mysql_ConnectionObject????
_mysql.c:2357: error: expected expression before ????_mysql_ConnectionObject????
_mysql.c:2364: error: ????NULL???? undeclared here (not in a function)
_mysql.c:2367: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????_mysql_ResultObject_methods????
_mysql.c:2419: error: array type has incomplete element type
_mysql.c:2420: error: expected expression before ????_mysql_ResultObject????
_mysql.c:2430: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2458: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2488: error: expected declaration specifiers or ????...???? before ????PyObject????
_mysql.c: In function ????_mysql_ConnectionObject_setattr????:
_mysql.c:2490: error: ????v???? undeclared (first use in this function)
_mysql.c:2491: warning: implicit declaration of function ????PyErr_SetString????
_mysql.c:2491: error: ????PyExc_AttributeError???? undeclared (first use in this function)
_mysql.c:2496: warning: implicit declaration of function ????PyMember_Set????
_mysql.c: At top level:
_mysql.c:2513: error: expected declaration specifiers or ????...???? before ????PyObject????
_mysql.c: In function ????_mysql_ResultObject_setattr????:
_mysql.c:2515: error: ????v???? undeclared (first use in this function)
_mysql.c:2516: error: ????PyExc_AttributeError???? undeclared (first use in this function)
_mysql.c: At top level:
_mysql.c:2534: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????_mysql_ConnectionObject_Type????
_mysql.c:2618: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????_mysql_ResultObject_Type????
_mysql.c:2704: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????_mysql_methods????
_mysql.c:2776: error: expected ????=????, ????,????, ????;????, ????asm???? or ????__attribute__???? before ????*???? token
_mysql.c:2808: warning: return type defaults to ????int????
_mysql.c: In function ????DL_EXPORT????:
_mysql.c:2808: error: expected declaration specifiers before ????init_mysql????
_mysql.c:2886: error: expected ????{???? at end of input
error: command 'gcc' failed with exit status 1
看的頭都大了。
解決辦法是:
yum install python-devel mysql-devel zlib-devel openssl-devel
然後再build、install