在带有cygwinforDjango-serevr的Windows上安装mysqlclient失败

2024-06-02 21:54:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我真的希望有人能帮我。我试图用cygwin在windows10机器上安装Django服务器。在

到目前为止,我成功地运行了test serevr,我想把它连接到一个在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的地方(这是一个可移植的安装)

我使用的环境是:

^{pr2}$

我还从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版本,方法是在/usr/lib中创建一个名为/usr/lib的符号链接,但总是得到相同的错误。在

我也按照this SO中的建议尝试了this MinGW compiler,但是我得到了一个不同的错误(它抱怨-Wno-unused-result标志)

有人知道吗?我做错什么了?在

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

我尝试了this "possible duplicate"解决方案,但我无法安装Christoph Gohlke's website上提供的weehls,我想是因为它们不是为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。它说它已经安装,所以我编辑了我的djangosettings.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安装的库。我还缺什么吗?也许还有别的头像?在


Tags: pybuildnonelibusrmysqlerrorx86
1条回答
网友
1楼 · 发布于 2024-06-02 21:54:55

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

我按照上面的Dan Dev注释安装了libmysqlclient-devel。 这还不够,我还必须安装python-devel包。在

然后我再次发出命令:

pip install mysqlclient

而且成功了。在

非常感谢各位:D

相关问题 更多 >