2015-09-08 12 views
5

Chcę uruchomić django z MySQL i Python 3. Zainicjowałem środowisko wirtualne z virtualenv --no-site-packages -p python3 ./. Potem zainstalowane Django i koła przy użyciu pip, więc pip freeze dajeNie można zainstalować mysqlclient w python3 virtualenv

django==1.8.3 
wheel==0.24.0 

Potem próbowałem instalacji mysqlclient z pip install mysqlclient, ale skończyło się

Downloading/unpacking mysqlclient 
Downloading mysqlclient-1.3.6.tar.gz (78kB): 78kB downloaded 
Running setup.py (path:/tmp/pip-build-jpdlrnc8/mysqlclient/setup.py) egg_info for package mysqlclient 

Installing collected packages: mysqlclient 
Running setup.py install for mysqlclient 
building '_mysql' extension 
i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -Dversion_info=(1,3,6,'final',1) -D__version__=1.3.6 -I/usr/include/mysql -I/usr/include/python3.4m -I/home/ondra/zelvovani/include/python3.4m -c _mysql.c -o build/temp.linux-i686-3.4/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG 
error: command 'i586-linux-gnu-gcc' failed with exit status 1 
Complete output from command /home/ondra/zelvovani/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-jpdlrnc8/mysqlclient/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-fa_6nkh3-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ondra/zelvovani/include/site/python3.4: 
running install 

running build 

running build_py 

creating build 

creating build/lib.linux-i686-3.4 

copying _mysql_exceptions.py -> build/lib.linux-i686-3.4 

creating build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/__init__.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/compat.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/converters.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/connections.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/cursors.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/release.py -> build/lib.linux-i686-3.4/MySQLdb 

copying MySQLdb/times.py -> build/lib.linux-i686-3.4/MySQLdb 

creating build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/__init__.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/CR.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/ER.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/FLAG.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/REFRESH.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

copying MySQLdb/constants/CLIENT.py -> build/lib.linux-i686-3.4/MySQLdb/constants 

running build_ext 

building '_mysql' extension 

creating build/temp.linux-i686-3.4 

i586-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -g -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC -Dversion_info=(1,3,6,'final',1) -D__version__=1.3.6 -I/usr/include/mysql -I/usr/include/python3.4m -I/home/ondra/zelvovani/include/python3.4m -c _mysql.c -o build/temp.linux-i686-3.4/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -DTAOCRYPT_DISABLE_X86ASM -g -DNDEBUG 

error: command 'i586-linux-gnu-gcc' failed with exit status 1 

---------------------------------------- 
Cleaning up... 
Command /home/ondra/zelvovani/bin/python3 -c "import setuptools, tokenize;__file__='/tmp/pip-build-jpdlrnc8/mysqlclient/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-fa_6nkh3-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/ondra/zelvovani/include/site/python3.4 failed with error code 1 in /tmp/pip-build-jpdlrnc8/mysqlclient 
Storing debug log for failure in /home/ondra/.pip/pip.log 

mam zainstalowanego libmysqlclient-dev, python3-dev, zlib1g-dev (pakiety, które zostały zasugerowane w innych pytaniach tutaj w stackoverflow).

Czy masz jakieś pomysły, co robię źle?

Odpowiedz

8

Użyj pymysql i powinno rozwiązać twój problem.Użyj pip3 install pymysql. Po zainstalowaniu, w katalogu plików project/project/__init__.py napisać ten

import pymysql 
pymysql.install_as_MySQLdb() 

Uwaga: - projekt jest nazwą projektu Django.

+0

Dzięki, to działa. Ale chciałbym wiedzieć, jak rozwiązać to bez tego dookoła - na moim drugim udało mi się zainstalować mysqlclient i oba komputery mają ten sam debian i nie mogłem znaleźć żadnych podłączonych pakietów, w których by się różniły –

3

Możesz spróbować zainstalować python3-dev ijako the documentation mówi. Miałem ten sam problem, dopóki nie zauważyłem, że potrzebuję tych paczek.

1

Jeśli używasz python 3.5 lub 3.6, powinieneś mieć problem opisany w this issue.

Cytując jeden z czynników przyczyniających się do tej biblioteki:

budynku MySQL-python w systemie Windows jest trudne. Powinieneś budować ze źródła zamiast instalacji pip, ponieważ musisz edytować plik setup.cfg.

szczęście istnieje nieoficjalny Windows, oprogramowanie dla Pythona rozszerzeń pakietów o Christoph GOHLKE (laboratorium fluorescencji Dynamics, University of California, Irvine) i tam można ściągnąć koła (.whl) dla tej biblioteki:

Pobierz zgodnie z zainstalowanym systemem i wersją python.

Wtedy po prostu trzeba zrobić (w katalogu pobranego pliku):

pip install mysqlclient-....whl 
0

Pobierz skompilowane plik WHL dla mysqlclient według systemu operacyjnego z biblioteki Christophe GOHLKE jest wstępnie skompilowane pakiety Pythona dla okien z poniższej lokalizacji.

http://www.lfd.uci.edu/~gohlke/pythonlibs/#vlfd

teraz dostał się do katalogu, w którym został zapisany pobrany plik i ten wiersz polecenia Otwórz tam.

Teraz uruchom poniżej polecenia

instalacja pip xxx.whl

Najlepsze szczęście !!

Powiązane problemy