下面记录了在 M1 Mac 上如何解决安装 python mysqlclient
失败的问题。
安装过程
一开始的安装命令:
pip install mysqlclient==1.4.4
安装 mysqlclient
会出现下面的问题:
mysql_config not found
这个问题可以通过在本地安装 mysql
来解决:
$ brew install mysql
Error: Cannot install under Rosetta 2 in ARM default prefix (/opt/homebrew)!
To rerun under ARM use:
arch -arm64 brew install ...
To install under x86_64, install Homebrew into /usr/local.
根据第一次安装失败的提示,进行了第二次安装:
arch -arm64 brew install mysql
然后再尝试安装 mysqlclient
时又出现了下面的问题:
ld: library not found for -lzstd
通过 参看内容1,知道了需要安装 zstd
:
brew install zstd
安装完 zstd
后重新尝试安装 mysqlclient
,但仍是那个错误 ld: library not found for -l
,然后通过 参看内容2 得知,可以通过 env
设置环境变量指定依赖库的位置:
env LDFLAGS="-L/opt/homebrew/Cellar/zstd/1.5.0/lib" pip install mysqlclient==1.4.4
这时发现类似的问题:
ld: library not found for -lssl
然后在 参看内容2 中可以得知需要安装 openssl
:
brew install openssl
在确认已经安装 openssl
后,再尝试安装 mysqlclient
,发现问题仍没有解决,这时再通过 env
设置一下 openssl
依赖库的位置:
env LDFLAGS="-L/opt/homebrew/Cellar/zstd/1.5.0/lib -L/opt/homebrew/Cellar/[email protected]/1.1.1k/lib" pip install mysqlclient==1.4.4
到这里就成功安装了 mysqlclient
!