2016-12-15 2 views
0

Я действительно надеюсь, что кто-то может мне помочь. Я пытаюсь установить сервер Django на компьютере под управлением Windows 10 с помощью cygwin.Установка mysqlclient на Windows с cygwin для django serevr не работает при ошибке gcc

До сих пор мне удалось запустить тестовый serevr, и я хочу подключить его к экземпляру сервера MySql, работающему с на компьютере с Windows. Поскольку я использую Python3 мне нужен драйвер mysqlclient, как указано в Django documentation

Я попытался установить его с помощью пип, но я получаю сообщение об ошибке: Gcc

$ pip install mysqlclient 
Collecting mysqlclient 
    Using cached mysqlclient-1.3.9.tar.gz 
Building wheels for collected packages: mysqlclient 
    Running setup.py bdist_wheel for mysqlclient: started 
    Running setup.py bdist_wheel for mysqlclient: finished with status 'error' 
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-r0034q8_/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" bdist_wheel -d /tmp/tmpv8u4dfwopip-wheel- --python-tag cp34: 
    running bdist_wheel 
    running build 
    running build_py 
    creating build 
    creating build/lib.cygwin-2.6.0-x86_64-3.4 
    copying _mysql_exceptions.py -> build/lib.cygwin-2.6.0-x86_64-3.4 
    creating build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/__init__.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/compat.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/converters.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/connections.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/cursors.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/release.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/times.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    creating build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/__init__.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/CR.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/ER.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/FLAG.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/REFRESH.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/CLIENT.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    running build_ext 
    building '_mysql' extension 
    creating build/temp.cygwin-2.6.0-x86_64-3.4 
    gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/build=/usr/src/debug/python3-3.4.5-1 -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/src/Python-3.4.5=/usr/src/debug/python3-3.4.5-1 -Dversion_info=(1,3,9,'final',1) -D__version__=1.3.9 -I/usr/include/python3.4m -c _mysql.c -o build/temp.cygwin-2.6.0-x86_64-3.4/_mysql.o "-I/cygdrive/d/tweb/mysql/include/mysql" "/MT" "/Zi" "/O2" "/Ob1" "/D" "NDEBUG" "-DDBUG_OFF" 
    gcc: error: "-I/cygdrive/d/tweb/mysql/include/mysql": No such file or directory 
    gcc: error: "/MT": No such file or directory 
    gcc: error: "/Zi": No such file or directory 
    gcc: error: "/O2": No such file or directory 
    gcc: error: "/Ob1": No such file or directory 
    gcc: error: "/D": No such file or directory 
    gcc: error: "NDEBUG": No such file or directory 
    gcc: error: "-DDBUG_OFF": No such file or directory 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
    Failed building wheel for mysqlclient 
    Running setup.py clean for mysqlclient 
Failed to build mysqlclient 
Installing collected packages: mysqlclient 
    Running setup.py install for mysqlclient: started 
    Running setup.py install for mysqlclient: finished with status 'error' 
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-r0034q8_/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-0zo72r3z-record/install-record.txt --single-version-externally-managed --compile: 
    running install 
    running build 
    running build_py 
    creating build 
    creating build/lib.cygwin-2.6.0-x86_64-3.4 
    copying _mysql_exceptions.py -> build/lib.cygwin-2.6.0-x86_64-3.4 
    creating build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/__init__.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/compat.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/converters.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/connections.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/cursors.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/release.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    copying MySQLdb/times.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb 
    creating build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/__init__.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/CR.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/ER.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/FLAG.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/REFRESH.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    copying MySQLdb/constants/CLIENT.py -> build/lib.cygwin-2.6.0-x86_64-3.4/MySQLdb/constants 
    running build_ext 
    building '_mysql' extension 
    creating build/temp.cygwin-2.6.0-x86_64-3.4 
    gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/build=/usr/src/debug/python3-3.4.5-1 -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/src/Python-3.4.5=/usr/src/debug/python3-3.4.5-1 -Dversion_info=(1,3,9,'final',1) -D__version__=1.3.9 -I/usr/include/python3.4m -c _mysql.c -o build/temp.cygwin-2.6.0-x86_64-3.4/_mysql.o "-I/cygdrive/d/tweb/mysql/include/mysql" "/MT" "/Zi" "/O2" "/Ob1" "/D" "NDEBUG" "-DDBUG_OFF" 
    gcc: error: "-I/cygdrive/d/tweb/mysql/include/mysql": No such file or directory 
    gcc: error: "/MT": No such file or directory 
    gcc: error: "/Zi": No such file or directory 
    gcc: error: "/O2": No such file or directory 
    gcc: error: "/Ob1": No such file or directory 
    gcc: error: "/D": No such file or directory 
    gcc: error: "NDEBUG": No such file or directory 
    gcc: error: "-DDBUG_OFF": No such file or directory 
    error: command 'gcc' failed with exit status 1 

    ---------------------------------------- 
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-r0034q8_/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-0zo72r3z-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-build-r0034q8_/mysqlclient/ 

D:\tweb\mysql находится где окна MySql serevr является установлен (это портативная установка)

среда я использую:

$ python --version 
Python 3.4.5 

$ pip --version 
pip 9.0.1 from /usr/lib/python3.4/site-packages (python 3.4) 

$ python -m django --version 
1.10.4 

$ ls -l `which gcc` 
-rwxr-xr-x 3 Stefano None 790035 13 giu 2016 /usr/bin/gcc 

Я также установил другие НКУ ве rsions от установщиком Cygwin, вот все, что я есть сейчас:

$ ls -l /usr/bin/ | grep gcc 
lrwxrwxrwx 1 Stefano None  7 15 dic 16.42 cc -> gcc.exe 
-rwxr-xr-x 1 Stefano None 6707 6 gen 2010 colorgcc 
-rwxr-xr-x 1 Stefano None 71187 13 giu 2016 cyggcc_s-seh-1.dll 
-rwxr-xr-x 3 Stefano None 790035 13 giu 2016 gcc.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 gcc-ar.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 gcc-nm.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 gcc-ranlib.exe 
-rwxr-xr-x 2 Stefano None 731155 24 giu 23.52 i686-pc-cygwin-gcc.exe 
-rwxr-xr-x 2 Stefano None 731155 24 giu 23.52 i686-pc-cygwin-gcc-5.4.0.exe 
-rwxr-xr-x 1 Stefano None 26643 24 giu 23.52 i686-pc-cygwin-gcc-ar.exe 
-rwxr-xr-x 1 Stefano None 26643 24 giu 23.52 i686-pc-cygwin-gcc-nm.exe 
-rwxr-xr-x 1 Stefano None 26643 24 giu 23.52 i686-pc-cygwin-gcc-ranlib.exe 
-rwxr-xr-x 3 Stefano None 790035 13 giu 2016 x86_64-pc-cygwin-gcc.exe 
-rwxr-xr-x 3 Stefano None 790035 13 giu 2016 x86_64-pc-cygwin-gcc-5.4.0.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 x86_64-pc-cygwin-gcc-ar.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 x86_64-pc-cygwin-gcc-nm.exe 
-rwxr-xr-x 2 Stefano None 26643 13 giu 2016 x86_64-pc-cygwin-gcc-ranlib.exe 
-rwxr-xr-x 2 Stefano None 790547 5 nov 04.19 x86_64-w64-mingw32-gcc.exe 
-rwxr-xr-x 2 Stefano None 790547 5 nov 04.19 x86_64-w64-mingw32-gcc-5.4.0.exe 
-rwxr-xr-x 1 Stefano None 26643 5 nov 04.19 x86_64-w64-mingw32-gcc-ar.exe 
-rwxr-xr-x 1 Stefano None 26643 5 nov 04.19 x86_64-w64-mingw32-gcc-nm.exe 
-rwxr-xr-x 1 Stefano None 26643 5 nov 04.19 x86_64-w64-mingw32-gcc-ranlib.exe 

Я пытался использовать другие GCC версии, создав символическую ссылку с именем gcc в /usr/lib к другим gcc.exe с, но я всегда получаю это же такая же ошибка.

Я также попытался this MinGW compiler, как предложено в this SO, но я получаю другую ошибку (она жалуется на - Wno-unused-result флаг)

Кто-нибудь имеет какие-либо идеи? Что я делаю не так?

EDIT (в соответствии с Крисом комментария):

Я попытался this "possible duplicate" решения, но я не могу установить weehls предусмотренного на Christoph Gohlke's website я думаю, потому что они не предназначены для Cygwin. Я также попытался обмануть его, приняв его; вот что Cygwin будет принимать

$ python 
Python 3.4.5 (default, Oct 10 2016, 14:41:48) 
[GCC 5.4.0] on cygwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import pip 
>>> print(pip.pep425tags.get_supported()) 
[('cp34', 'cp34m', 'cygwin_2_6_0_x86_64'), ('cp34', 'abi3', 'cygwin_2_6_0_x86_64'), ('cp34', 'none', 'cygwin_2_6_0_x86_64'), ('cp33', 'abi3', 'cygwin_2_6_0_x86_64'), ('cp32', 'abi3', 'cygwin_2_6_0_x86_64'), ('py3', 'none', 'cygwin_2_6_0_x86_64'), ('cp34', 'none', 'any'), ('cp3', 'none', 'any'), ('py34', 'none', 'any'), ('py3', 'none', 'any'), ('py33', 'none', 'any'), ('py32', 'none', 'any'), ('py31', 'none', 'any'), ('py30', 'none', 'any')] 

Я скачал файл mysqlclient‑1.3.9‑cp34‑cp34m‑win_amd64.whl и переименовал его в mysqlclient‑1.3.9‑cp34‑cp34m‑cygwin_2_6_0_x86_64.whl. Он сказал, что он был установлен, поэтому я отредактировал мой Джанго settings.py использовать разъем MySQL:

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.mysql', 
    'NAME': ..., 
    'USER': ..., 
    'PASSWORD': ..., 
    'HOST': 'localhost', 
    'PORT': '3306', 
} 

но Джанго все еще жалуется не найти модуль MySQLDb:

django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named '_mysql' 

EDIT 2 (в соответствии с Дэном -dev комментарий): Я попытался установить libmysqlclient-Devel, теперь сборник errror говорит:

building '_mysql' extension 
    creating build/temp.cygwin-2.6.0-x86_64-3.4 
    gcc -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -ggdb -O2 -pipe -Wimplicit-function-declaration -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/build=/usr/src/debug/python3-3.4.5-1 -fdebug-prefix-map=/usr/src/ports/python3/python3-3.4.5-1.x86_64/src/Python-3.4.5=/usr/src/debug/python3-3.4.5-1 -Dversion_info=(1,3,9,'final',1) -D__version__=1.3.9 -I/usr/include/mysql -I/usr/include/python3.4m -c _mysql.c -o build/temp.cygwin-2.6.0-x86_64-3.4/_mysql.o 
    _mysql.c:40:20: fatal error: Python.h: No such file or directory 
    compilation terminated. 
    error: command 'gcc' failed with exit status 1 

Я предполагаю, что перестали использовать библиотеку окон и использовал тот, который был установлен из cygwin. Я что-то пропустил? Может быть, какой-то другой заголовок?

+0

Возможная Дубликат [Django 1.10.3 подключения к MySQL 5.7.16] (http://stackoverflow.com/questions/41087806/django-1-10-3- connection-to-mysql-5-7-16) – Chris

+0

Можете ли вы установить libmysqlclient-devel https://cygwin.com/cygwin/packages/x86/libmysqlclient-devel/ через cygwin и повторить попытку? –

+0

@ Крис благодарит вас за указание на этот ответ, я также попытался найти колеса, но не смог их найти. В любом случае, используя эти проблемы, я не редактировал вопрос с тем, что я пробовал. – Antiphon0x

ответ

0

Хорошо, мне удалось установить этот пакет.

Я следовал за комментарием Dan-Dev выше и установил libmysqlclient-devel. В моем случае этого было недостаточно, мне также пришлось установить пакет python-devel.

Затем я переиздал команду:

pip install mysqlclient 

, и она работала.

Большое спасибо, ребята: D