2014-07-03 16 views
18

Also habe ich Python 2.7 und setuptools auf meinem Windows 7 Laptop installiert. Ich habe auch Visual Studio 2008 Express installiert und MySQL mit Dev-Tools.Kompilieren von mysql-python unter Windows mit PIP

Ich versuche, MySQL-Python über pip wie zu installieren:

pip install mysql-python 

Ich erhalte Verbindungsfehler:

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 [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 

Irgendwelche Ideen, wie dieses Problem zu lösen? Danke

+1

Haben Blick auf diese: 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

Keine der verknüpften Lösungen löst das Problem. – canadiancreed

+0

Gibt es einen bestimmten Grund, warum Sie von der Quelle installieren müssen? Es ist typischer unter Windows, C-basierte Module (wie dieses) in vorkompilierter binärer Form zu installieren, z. Download von https://pypi.python.org/pypi/MySQL-python/1.2.5 und installieren. Die einzige Zeit, die Sie von der Quelle installieren sollten, ist, wenn Sie auf den C-Code usw. hacken wollen. –

Antwort

2

Dies scheint wie Ihre Installation nicht erkennen, die MySQL-Client-Bibliothek. Suchen und kopieren Sie mysqlcppconn.dll von Ihrer mysql-Installation in einen Ordner, der vom Build-Skript gelesen wird, z. B. den Windows-Ordner. Weitere Informationen finden Sie unter diesem Link

4

Überprüfen Sie, ob beide entweder 32bit oder 64bit sind, und Sie haben keine Diskrepanz zwischen ihnen. Als ich dieses Problem hatte, war es, weil ich ein 64bit Python installierte, aber ein 32bit MySQL installiert hatte. Das pip-Installationsprogramm konnte daher keine übereinstimmenden Binärdateien finden, mit denen eine Verbindung hergestellt werden kann und die mit dieser Nachricht fehlgeschlagen sind. Das Problem zu beheben war einfach eine Frage der Installation des 32-Bit-Python, und alles hat funktioniert.

Beachten Sie, dass es auch möglich ist, MySQL auf 64-Bit zu aktualisieren, aber die Installationsprogramme für MySQL scheinen derzeit nur 32-Bit zu sein. Sie können die Installation über eine ZIP-Datei durchführen, die von der offiziellen MySQL-Site heruntergeladen wurde, die jedoch 64-Bit-Binärdateien enthält.

Um herauszufinden, welche Sie installiert haben:

  • Für Python, einfach in python auf die Kommandozeile und geben Sie gehen. Es sollte Ihnen zeigen, welche Version und ob es sich um eine 32bit oder 64bit Installation handelte.

    Python 2.7.10 (Standard, 23. Mai 2015, 09:40:32) [MSC v.1500 32 bit (Intel)] auf win32

  • Für MySQL wird der einfachste Weg, wahrscheinlich in welchem ​​Ordner sie in installiert ist. wenn es Program Files/ installiert dann ist es 64bit, aber wenn es zu Program Files (x86)/ installiert ist es 32bit
+0

Hallo dort. Ich habe dieses Problem. Ich habe 32bit Python installiert, aber immer noch das gleiche Problem. Ist das Problem vielleicht, dass der "easy_install mysql-python" -Befehl nicht weiß, dass er die 32-Bit-Version verwenden soll? – Jonny

+0

Ich hatte 64bit Python 3.5.2 auf 64bit Windows 8.1 mit 64bit Version von C/C++ - Connectors installiert (für VS 2015) aber MariaDB Version war 32bit. Nach der Installation von 32bit Python 3.5.2 und 32bit Version von C/C++ - Connectors lief die Kompilierung ohne Probleme. Alles funktioniert super. – Dawid

2

I versuchte dies und es funktionierte für mich auf Win7 64-Bit-Installation von Anakonda. Art dieses in Ihre Eingabeaufforderung:

pip mysql-Python

Meine Installation funktioniert installieren, weil ich Studio bin mit 2010

+0

OP bereits versucht 'pip install mysql-python'. Wollen Sie sagen, dass die Lösung Studio 2010 ist? http://StackOverflow.com/a/12590280/1766755 erwähnt, dass die Verwendung von VS Express das Problem sein könnte. – tyleha

+0

Ja, leider empfehle ich, Studio 2010 zu installieren –

5

ich hatte das gleiche Problem und genau die gleiche errors.I nicht kennen warum aber

pip install Mysql-python 

gab Fehler. Aber als ich versuchte,

easy_install Mysql-python 

Es worked.I weiß nicht, warum, aber es hat funktioniert, aber würde zu wissen, warum lieben.