gpt4 book ai didi

python - 在 Windows 上使用 cygwin for django serevr 安装 mysqlclient 因 gcc 错误而失败

转载 作者:行者123 更新时间:2023-11-29 19:44:05 25 4
gpt4 key购买 nike

我真的希望有人能帮助我。我正在尝试使用 cygwin 在 Windows 10 计算机上安装 Django 服务器。

到目前为止,我已成功运行测试服务器,并且我想将其连接到在 Windows 计算机上运行的 MySql 服务器实例。由于我使用的是 Python3,我需要 mysqlclient 驱动程序,如 Django documentation 中所述。

我尝试使用 pip 安装它,但出现 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是 Windows 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

我还从 cygwin 安装程序安装了其他 gcc 版本,这是我现在所拥有的:

$ 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 的符号链接(symbolic link)来使用其他 gcc 版本。在/usr/lib到另一个gcc.exe s,但我总是遇到同样的错误。

我也尝试过this MinGW compiler正如 this SO 中所建议的,但我得到了一个不同的错误(它提示 - Wno-unused-result 标志)

有人有任何想法吗?我做错了什么?

编辑(根据克里斯评论):

我试过this "possible duplicate"解决方案,但我无法安装 Christoph Gohlke's website 上提供的 weehls我想是因为它们不适合 cygwin。我还试图欺骗 pip 接受它;这是 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 。它说已经安装了,所以我编辑了我的django settings.py使用 mysql 连接器:

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

但 django 仍然提示找不到 mysqldb 模块:

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

编辑 2(根据 Dan-Dev 评论):我尝试安装 libmysqlclient-devel,现在编译错误显示:

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

我猜它停止使用 Windows 库并使用从 cygwin 安装的库。我还缺少其他东西吗?也许还有其他 header ?

最佳答案

好的,我成功安装了这个软件包。

我按照上面的 Dan-Dev 评论安装了 libmysqlclient-devel。对于我来说这还不够,我还必须安装 python-devel 包。

然后我重新发出命令:

pip install mysqlclient

并且成功了。

非常感谢你们:D

关于python - 在 Windows 上使用 cygwin for django serevr 安装 mysqlclient 因 gcc 错误而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41168891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com