2014-07-03 77 views
18

Così ho installato Python 2.7 e setuptools sul mio laptop Windows 7. Ho anche installato Visual Studio 2008 Express e MySQL con gli strumenti di sviluppo.Compilare mysql-python su Windows con PIP

Sto cercando di installare MySQL-python tramite pip come:

pip install mysql-python 

sto ottenendo gli errori di collegamento:

Creating library build\temp.win32-2.7\Release\_mysql.lib and object build\temp.win32-2.7\Release\_mysql.exp 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_Exception 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_Exception 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_server_init 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_server_end 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_thread_safe 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_Initialize 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_close 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_affected_rows 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_debug 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_dump_debug_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_autocommit 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_commit 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_rollback 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_next_result 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_set_server_option 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_sqlstate 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_warning_count 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_escape_string 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_escape_string 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_row_to_tuple 

_mysql.obj : error LNK2019: unresolved external symbol __imp__strncpy referenced in function __mysql_row_to_dict 

_mysql.obj : error LNK2019: unresolved external symbol __imp__strncat referenced in function __mysql_row_to_dict 

_mysql.obj : error LNK2019: unresolved external symbol _memset referenced in function __mysql_row_to_dict_old 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql__fetch_row 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_fetch_row 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_change_user 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_character_set_name 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_set_character_set 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_get_character_set_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_get_client_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_get_host_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_get_proto_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_get_server_info 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_info 

_mysql.obj : error LNK2019: unresolved external symbol _mysql_insert_id[email protected] referenced in function __mysql_ConnectionObject_insert_id 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_kill 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_ping 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_query 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_select_db 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_shutdown 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_stat 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ConnectionObject_thread_id 

_mysql.obj : error LNK2019: unresolved external symbol __imp__sprintf referenced in function __mysql_ConnectionObject_repr 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_data_seek 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_row_seek 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_row_seek 

_mysql.obj : error LNK2019: unresolved external symbol [email protected] referenced in function __mysql_ResultObject_dealloc 

LINK : error LNK2001: unresolved external symbol [email protected] 

build\lib.win32-2.7\_mysql.pyd : fatal error LNK1120: 56 unresolved externals 

error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 9.0\\VC\\BIN\\link.exe' failed with exit status 1120 

Tutte le idee come risolvere questo problema? Grazie

+1

Abbia un'occhiata a questi: http://stackoverflow.com/questions/9951260/the-python-module-psutil-failed-to-build-on-windows-7-vs2008sp1-environment http://stackoverflow.com/questions/18296525/build-python-package-with-c-bindings-in-windows-vc90-causes-lnk1181-fatal-erro http://stackoverflow.com/ a/12590280/3755171 –

+0

Nessuna delle soluzioni collegate risolve il problema. – canadiancreed

+0

C'è un motivo particolare per cui è necessario installare dall'origine? È più tipico su Windows installare moduli basati su C (come questo) in forma binaria precompilata, ad es. scarica da https://pypi.python.org/pypi/MySQL-python/1.2.5 e installa. L'unica volta che dovresti installare dal sorgente è se vuoi hackerare il codice C, ecc. –

risposta

4

Verificare che entrambi sono o 32bit o 64 bit, e non si dispone di una mancata corrispondenza tra di loro. Quando ho avuto questo problema, è stato perché ho installato un Python a 64 bit ma ho installato un MySQL a 32 bit. Il programma di installazione del pip non ha quindi potuto trovare i binari di corrispondenza a cui collegarsi e non è riuscito con questo messaggio. Risolvere il problema era semplicemente una questione di installare il Python a 32 bit sopra le righe e tutto funzionava.

Si noti che potrebbe anche essere possibile aggiornare MySQL a 64 bit, ma gli installer al momento per MySQL sembrano essere solo a 32 bit. È possibile installare tramite un file .zip scaricato dal sito ufficiale di MySQL anche se contiene binari a 64 bit.

per scoprire quale è stato installato:

  • Per Python, basta andare alla riga di comando e digitare python. Dovrebbe mostrarti quale versione e se si trattava di un'installazione a 32 bit o 64 bit come quella

    Python 2.7.10 (predefinito, 23 maggio 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] su win32

  • per MySQL, il modo più semplice sarà probabilmente in quale cartella è installato. Se si installa per Program Files/, allora è a 64 bit, ma se si installa a Program Files (x86)/ è 32bit
+0

Ciao. Mi sembra di avere questo problema. Ho installato Python a 32 bit, ma ho ancora lo stesso problema. Forse il problema è che il comando 'easy_install mysql-python' non sa che dovrebbe usare la versione a 32 bit? – Jonny

+0

Avevo 64bit Python 3.5.2 su Windows 8.1 a 64 bit con la versione a 64 bit dei connettori C/C++ installati (per VS 2015) ma la versione di MariaDB era a 32 bit. Dopo aver installato la versione a 32 bit di Python 3.5.2 e 32bit dei connettori C/C++, la compilazione è avvenuta senza problemi. Tutto funziona alla grande. – Dawid

2

I provato questo e ha funzionato per me su Win7 a 64 bit di anaconda. tipo di questo nella vostra prompt dei comandi:

pip installare MySQL-python

La mia installazione funziona perché sto utilizzando Studio 2010.

+0

OP già provato 'pip installa mysql-python'. Stai dicendo che la soluzione è usare Studio 2010? http://stackoverflow.com/a/12590280/1766755 afferma che l'utilizzo di VS Express potrebbe essere il problema. – tyleha

+0

Sì, sfortunatamente consiglio di provare ad installare Studio 2010 –

5

Ho avuto lo stesso problema e esattamente lo stesso errors.I non so perché ma

pip install Mysql-python 

ha dato errori. ma quando ho provato

easy_install Mysql-python 

E worked.I non so perché, ma lo ha fatto il lavoro, ma mi piacerebbe sapere perché.