2014-07-03 15 views
18

Tak więc mam Python 2.7 i setuptools zainstalowane na moim laptopie Windows 7. Mam również zainstalowany Visual Studio 2008 Express i MySQL z narzędziami dev.Kompilowanie mysql-python na Windows z PIP

Próbuję zainstalować mysql-python poprzez pip jak:

pip install mysql-python 

Dostaję błędy link:

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 

jakieś pomysły jak rozwiązać ten problem? Dzięki

+1

Czy patrzeć na te: 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

Żadne z połączonych rozwiązań nie rozwiązało problemu. – canadiancreed

+0

Czy istnieje szczególny powód, dla którego musisz zainstalować ze źródła? W Windowsie bardziej typowym jest instalowanie modułów opartych na C (takich jak ten) w wstępnie skompilowanej formie binarnej, np. pobierz z https://pypi.python.org/pypi/MySQL-python/1.2.5 i zainstaluj. Jedyny czas, który powinieneś zainstalować ze źródła, to jeśli chcesz hakować na kod C, itp. –

Odpowiedz

4

Sprawdź, czy oba są albo 32bit lub 64bit, a ty nie masz niedopasowanie pomiędzy nimi. Kiedy miałem ten problem, to dlatego, że zainstalowałem 64-bitowy Python, ale zainstalowałem 32-bitowy MySQL. Instalator potokowy nie może znaleźć pasujących plików binarnych, do których można się połączyć, i nie powiodło się z tym komunikatem. Naprawienie problemu było po prostu kwestią instalacji 32-bitowego Pythona na górze i wszystko działało.

Należy pamiętać, że możliwa jest również aktualizacja MySQL do wersji 64-bitowej, ale instalatory w tym momencie wydają się mieć tylko 32-bitowy MySQL. Możesz zainstalować za pomocą pliku .zip pobranego z oficjalnej witryny MySQL, ale z 64-bitowymi plikami binarnymi.

Aby dowiedzieć się, które masz zainstalowane:

  • dla Pythona, po prostu przejdź do wiersza poleceń i wpisz python. Powinien pokazać, która wersja i czy była to wersja 32-bitowa lub 64-bitowa, tak jak

    Python 2.7.10 (domyślnie, 23 maja 2015, 09:40:32) [MSC v.1500 32-bitowy (Intel)] na win32

  • dla MySQL, najprostszym sposobem będzie prawdopodobnie którym folderze jest zainstalowany. Jeśli instaluje się Program Files/ to jest 64-bitowy, ale jeśli instaluje się Program Files (x86)/ jest 32bit
+0

Cześć. Wydaje mi się, że mam ten problem. Zainstalowałem 32-bitowy Python, ale wciąż ten sam problem. Czy problem może polegać na tym, że komenda "easy_install mysql-python" nie wie, że powinna używać wersji 32-bitowej? – Jonny

+0

Posiadałem 64-bitowy Python 3.5.2 na 64-bitowym Windows 8.1 z zainstalowaną 64-bitową wersją wtyczek C/C++ (dla VS 2015), ale wersja MariaDB była 32-bitowa. Po zainstalowaniu 32-bitowej wersji Python 3.5.2 i 32-bitowej wersji kompilacji C/C++ kompilacja przebiegła bezproblemowo. Wszystko działa świetnie. – Dawid

2

I wypróbowałem to i zadziałało dla mnie na 64-bitowej instalacji anakondy Win7. typ to w swoim wierszu polecenia:

pip install mysql-python

Moja instalacja działa, ponieważ używam Studio 2010.

+0

OP już próbowałem 'pip install mysql-python'. Chcesz powiedzieć, że rozwiązaniem jest użycie Studio 2010? http://stackoverflow.com/a/12590280/1766755 wspomina, że ​​używanie VS Express może być problemem. – tyleha

+0

Tak, niestety polecam próbować zainstalować Studio 2010 –

5

miałem ten sam problem i dokładnie taką samą errors.I nie wiem dlaczego ale

pip install Mysql-python 
Nie można podać błąd Ale kiedy próbowałem

easy_install Mysql-python 

To worked.I nie wiem dlaczego, ale to nie działa, ale chciałbym wiedzieć, dlaczego.

Powiązane problemy