英文:
Failed building wheel for mysqlclient on macOS
问题
I have been troubleshooting this problem for the past 3 days, tried every method in stack and no luck, I am relatively new to Django and python so any suggestions will be greatly appreciated.
所以我在过去的3天里一直在解决这个问题,尝试了堆栈中的每种方法,但没有成功,我对Django和Python相对较新,因此非常感谢任何建议。
so I have been having a problem with installing mysqlclient through "pipenv install mysqlclient"
因此,我在通过"pipenv install mysqlclient"安装mysqlclient时遇到了问题
returning: ERROR: Failed building wheel for mysqlclient
返回:错误:构建mysqlclient的轮失败
full summary:
完整的摘要:
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
提示:Pipenv发现自己正在虚拟环境中运行,因此它将自动使用该环境,而不是为任何项目创建自己的环境。您可以设置PIPENV_IGNORE_VIRTUALENVS=1以强制pipenv忽略该环境并创建自己的环境。您可以设置PIPENV_VERBOSITY=-1以抑制此警告。
Installing mysqlclient...
正在安装mysqlclient...
Resolving mysqlclient...
正在解决mysqlclient...
Installing...
正在安装...
⠸ Installing mysqlclient...[31m[1mError: [0m An error occurred while installing [32mmysqlclient[0m!
⠸ 正在安装mysqlclient...[31m[1m错误:[0m在安装[32mmysqlclient[0m时发生错误!
Error text: Collecting mysqlclient (from -r
/var/folders/x4/6p57c76d173_b99bb3rtc2q40000gn/T/pipenv-rva1k23w-requirements/pipenv-xzl65j4d-requirement.txt (line 1))
错误文本:从-r
/var/folders/x4/6p57c76d173_b99bb3rtc2q40000gn/T/pipenv-rva1k23w-requirements/pipenv-xzl65j4d-requirement.txt (第1行)收集mysqlclient
Using cached mysqlclient-2.1.1.tar.gz (88 kB)
正在使用缓存的mysqlclient-2.1.1.tar.gz(88 kB)
Installing build dependencies: started
安装构建依赖项:已启动
Installing build dependencies: finished with status 'done'
安装构建依赖项:已完成,状态为“完成”
Getting requirements to build wheel: started
获取构建轮的要求:已启动
Getting requirements to build wheel: finished with status 'done'
获取构建轮的要求:已完成,状态为“完成”
Preparing metadata (pyproject.toml): started
准备元数据(pyproject.toml):已启动
Preparing metadata (pyproject.toml): finished with status 'done'
准备元数据(pyproject.toml):已完成,状态为“完成”
Building wheels for collected packages: mysqlclient
为收集的包构建轮:mysqlclient
Building wheel for mysqlclient (pyproject.toml): started
为mysqlclient(pyproject.toml)构建轮:已启动
Building wheel for mysqlclient (pyproject.toml): finished with status 'error'
构建mysqlclient(pyproject.toml)的轮:已完成,状态为“错误”
Failed to build mysqlclient
构建mysqlclient失败
[36m error: subprocess-exited-with-error
× Building wheel for mysqlclient (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [45 lines of output]
mysql_config --version
['8.0.33']
mysql_config --libs
['-L/opt/homebrew/Cellar/mysql/8.0.33/lib', '-lmysqlclient', '-lzlib', '-lzstd', '-L/opt/homebrew/opt/openssl@1.1/lib', '-lssl',
'-lcrypto', '-lresolv']
mysql_config --cflags
['-I/opt/homebrew/Cellar/mysql/8.0.33/include/mysql']
ext_options:
library_dirs: ['/opt/homebrew/Cellar/mysql/8.0.33/lib', '/opt/homebrew/opt/openssl@1.1/lib']
libraries: ['mysqlclient', 'zlib', 'resolv']
extra_compile_args: ['-std=c99']
extra_link_args: []
include_dirs: ['/opt/homebrew/Cellar/mysql/8.0.33/include/mysql']
extra_objects: []
define_macros: [('version_info', '(2,1,1,'final',0)'), ('__version__', '2.1.1')]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-universal2-cpython-311
creating build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/__init__.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/_exceptions.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/connections.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/converters.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/cursors.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/release.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/times.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
creating build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/__init__.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-universal2-cpython-311/
<details>
<summary>英文:</summary>
I have been troubleshooting this problem for the past 3 days, tried every method in stack and no luck, I am relatively new to Django and python so any suggestions will be greatly appreciated.
so I have been having a problem with installing mysqlclient through "pipenv install mysqlclient"
returning: `ERROR: Failed building wheel for mysqlclient`
full summary:
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
Installing mysqlclient...
Resolving mysqlclient...
Installing...
⠸ Installing mysqlclient...[31m[1mError: [0m An error occurred while installing [32mmysqlclient[0m!
Error text: Collecting mysqlclient (from -r
/var/folders/x4/6p57c76d173_b99bb3rtc2q40000gn/T/pipenv-rva1k23w-requirements/pipenv-xzl65j4d-requirement.txt (line 1))
Using cached mysqlclient-2.1.1.tar.gz (88 kB)
Installing build dependencies: started
Installing build dependencies: finished with status 'done'
Getting requirements to build wheel: started
Getting requirements to build wheel: finished with status 'done'
Preparing metadata (pyproject.toml): started
Preparing metadata (pyproject.toml): finished with status 'done'
Building wheels for collected packages: mysqlclient
Building wheel for mysqlclient (pyproject.toml): started
Building wheel for mysqlclient (pyproject.toml): finished with status 'error'
Failed to build mysqlclient
[36m error: subprocess-exited-with-error
× Building wheel for mysqlclient (pyproject.toml) did not run successfully.
│ exit code: 1
╰─> [45 lines of output]
mysql_config --version
['8.0.33']
mysql_config --libs
['-L/opt/homebrew/Cellar/mysql/8.0.33/lib', '-lmysqlclient', '-lzlib', '-lzstd', '-L/opt/homebrew/opt/openssl@1.1/lib', '-lssl',
'-lcrypto', '-lresolv']
mysql_config --cflags
['-I/opt/homebrew/Cellar/mysql/8.0.33/include/mysql']
ext_options:
library_dirs: ['/opt/homebrew/Cellar/mysql/8.0.33/lib', '/opt/homebrew/opt/openssl@1.1/lib']
libraries: ['mysqlclient', 'zlib', 'resolv']
extra_compile_args: ['-std=c99']
extra_link_args: []
include_dirs: ['/opt/homebrew/Cellar/mysql/8.0.33/include/mysql']
extra_objects: []
define_macros: [('version_info', "(2,1,1,'final',0)"), ('version', '2.1.1')]
running bdist_wheel
running build
running build_py
creating build
creating build/lib.macosx-10.9-universal2-cpython-311
creating build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/init.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/_exceptions.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/connections.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/converters.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/cursors.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/release.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
copying MySQLdb/times.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb
creating build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/init.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/CLIENT.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/CR.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/ER.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/FIELD_TYPE.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
copying MySQLdb/constants/FLAG.py -> build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/constants
warning: build_py: byte-compiling is disabled, skipping.
running build_ext
building 'MySQLdb._mysql' extension
creating build/temp.macosx-10.9-universal2-cpython-311
creating build/temp.macosx-10.9-universal2-cpython-311/MySQLdb
clang -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch arm64 -arch x86_64 -g
-Dversion_info=(2,1,1,'final',0) -D__version__=2.1.1 -I/opt/homebrew/Cellar/mysql/8.0.33/include/mysql
-I/Users/sonaallaibrahim/Desktop/storefront/my-test-env/include -I/Library/Frameworks/Python.framework/Versions/3.11/include/python3.11 -c
MySQLdb/_mysql.c -o build/temp.macosx-10.9-universal2-cpython-311/MySQLdb/_mysql.o -std=c99
clang -bundle -undefined dynamic_lookup -arch arm64 -arch x86_64 -g build/temp.macosx-10.9-universal2-cpython-311/MySQLdb/_mysql.o
-L/opt/homebrew/Cellar/mysql/8.0.33/lib -L/opt/homebrew/opt/openssl@1.1/lib -lmysqlclient -lzlib -lresolv -o
build/lib.macosx-10.9-universal2-cpython-311/MySQLdb/_mysql.cpython-311-darwin.so
ld: library not found for -lzlib
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command '/usr/bin/clang' failed with exit code 1
note: This error originates from a subprocess, and is likely not a problem with pip.
ERROR: Failed building wheel for mysqlclient
ERROR: Could not build wheels for mysqlclient, which is required to install pyproject.toml-based projects
[0m
✘ Installation Failed
am using python 3.11
running on MacOS Ventura 13.3.1 M1 chip
as I said any suggestions will help a lot
tried uninstalling and reinstalling wheel
tried uninstalling and reinstalling mysql
tried unlinking mysql and link it back
tried brew mysql connector
tried brew mysql-client
</details>
# 答案1
**得分**: 1
错误消息显示 `zlib` 未找到。这意味着要么库未安装,要么 Python 无法找到它。因此,首先要做的是安装该库。
```shell
brew install zlib
接下来,我们需要为 Python 设置一些环境变量,以便它能够在正确的文件夹中查找库。设置以下环境变量(或将它们添加到您的 .bashrc 文件中)。
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
zlib 的实际路径可能会有所不同(在此情况下为 /usr/local/opt/zlib
)。您可以通过执行以下命令获取您机器上的路径:brew --prefix zlib
。
英文:
The error message says zlib
is not found. It means either the library is not installed, or python is not able to find it. So the first thing to do is to install the library.
brew install zlib
Next, we need to set a couple of env variables for Python to look for the libraries in the right folder. Set the following env variables (or add them to your .bashrc)
export LDFLAGS="-L/usr/local/opt/zlib/lib"
export CPPFLAGS="-I/usr/local/opt/zlib/include"
The actual path for zlib might vary (its /usr/local/opt/zlib
in this case. The path in your machine can be obtained by doing: brew --prefix zlib
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论