使用 pip 安装 mysqlclient 到 MacOS Bigsur 时出错

问题描述

我已经尝试过为 MysqLclient 错误编写的常见解决方

  • 第一次尝试:brew install mysql-connector-c
  • 第二次尝试: LDFLAGS=-L/usr/local/opt/openssl/lib pip install MysqLclient
  • 第三次尝试:brew install zstd

而且 MysqL 服务器运行良好。 但是错误没有被修复..

我听到clang linker errorlibrary not found for -lzstd

    clang -bundle -undefined dynamic_lookup -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/user/.asdf/installs/python/3.7.10/lib -L/usr/local/opt/llvm/lib -L/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/usr/lib -L/usr/local/opt/readline/lib -L/usr/local/opt/readline/lib -L/Users/user/.asdf/installs/python/3.7.10/lib -L/usr/local/opt/llvm/lib -L/Library/Developer/CommandLinetools/SDKs/MacOSX.sdk/usr/lib -L/usr/local/opt/llvm/lib -I/usr/local/opt/llvm/include build/temp.macosx-11.2-x86_64-3.7/MysqLdb/_MysqL.o -L/usr/local/Cellar/MysqL/8.0.25_1/lib -lMysqLclient -lzstd -lresolv -o build/lib.macosx-11.2-x86_64-3.7/MysqLdb/_MysqL.cpython-37m-darwin.so
ld: library not found for -lzstd
clang-12: error: linker command Failed with exit code 1 (use -v to see invocation)
error: command 'clang' Failed with exit status 1

解决方法

就我而言,我没有 sudo 访问权限,因此为我的用户安装了 brew 检查您的 brew 是否不在默认位置 这样做以检查您安装 brew 的位置

brew --prefix
output: Users/helloWorld/homebrew

使用上面的输出来设置 ld 标志和 cpp 标志 例如对我来说没有找到 ssl 和 zstd 库,所以这就是我所做的:

export LDFLAGS="-L/Users/helloWorld/homebrew/lib L/Users/helloWorld/homebrew/opt/openssl/lib"

export CPPFLAGS="-I/Users/helloWorld/homebrew/include -I/Users/helloWorld/homebrew/opt/openssl/include" 

然后进行pip安装

pip3 install mysqlclient

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...