我正在尝试在带有 M1 芯片的 MacBook 上安装 MySQL 的 Python 接口(mysqlclient 2.1.0),以便与 Django 项目(将在 MS Code 中开发)一起使用。当我尝试为 python 安装 mysqlclient 时,出现错误并且无法解决它。我见过其他人也有类似的问题,但从下面得到的错误文本来看,我的问题并不相同
请帮忙
我的系统详细信息:MAC (M1)、OS Monterey 12.3、终端 zsh
Last login: Fri Mar 18 09:16:39 on ttys000
/Users/luklys/.zshrc:18: command not found: Password:
luklys@Luklys-MacBook-Air ~ % cd Documents/Code\ Projects/hello_django
luklys@Luklys-MacBook-Air hello_django % python3 -m venv .myvenv
luklys@Luklys-MacBook-Air hello_django % source .myvenv/bin/activate
(.myvenv) luklys@Luklys-MacBook-Air hello_django %
(.myvenv) luklys@Luklys-MacBook-Air hello_django % brew install mysql-client
Warning: mysql-client 8.0.28 is already installed and up-to-date.
To reinstall 8.0.28, run:
brew reinstall mysql-client
(.myvenv) luklys@Luklys-MacBook-Air hello_django %
(.myvenv) luklys@Luklys-MacBook-Air hello_django % echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.zshrc
(.myvenv) luklys@Luklys-MacBook-Air hello_django % export PATH="/usr/local/opt/mysql-client/bin:$PATH"
(.myvenv) luklys@Luklys-MacBook-Air hello_django % pip install mysqlclient
Collecting mysqlclient
Using cached mysqlclient-2.1.0.tar.gz (87 kB)
Preparing metadata (setup.py) ... error
error: subprocess-exited-with-error
× python setup.py egg_info did not run successfully.
│ exit code: 1
╰─> [16 lines of output]
/bin/sh: mysql_config: command not found
/bin/sh: mariadb_config: command not found
/bin/sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 2, in <module>
File "<pip-setuptools-caller>", line 34, in <module>
File "/private/var/folders/pw/87hvnxc51gdcwf3ck25n95tw0000gn/T/pip-install-y_1qn9ke/mysqlclient_48574969a7ff4372b5ff326147c56ec6/setup.py", line 15, in <module>
metadata, options = get_config()
File "/private/var/folders/pw/87hvnxc51gdcwf3ck25n95tw0000gn/T/pip-install-y_1qn9ke/mysqlclient_48574969a7ff4372b5ff326147c56ec6/setup_posix.py", line 70, in get_config
libs = mysql_config("libs")
File "/private/var/folders/pw/87hvnxc51gdcwf3ck25n95tw0000gn/T/pip-install-y_1qn9ke/mysqlclient_48574969a7ff4372b5ff326147c56ec6/setup_posix.py", line 31, in mysql_config
raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found
mysql_config --version
mariadb_config --version
mysql_config --libs
[end of output]
note: This error originates from a subprocess, and is likely not a problem with pip.
error: metadata-generation-failed
× Encountered error while generating package metadata.
您必须先在本地笔记本电脑/服务器上安装 mysql 才能安装 mysqlclient。
您可以从https://dev.mysql.com/doc/refman/8.0/en/macos-installation-pkg.html
下载最新版本的MySQL然后添加路径
export PATH=${PATH}:/usr/local/mysql/bin/
到 .zshrc 和 .zsh_profile
添加后只需运行
source .zshrc
和 source .zsh_profile
现在尝试做
mysql -u root -p
,如果有效的话会提示输入密码或直接带你到mysql。
现在你可以在python中安装mysqlclient了。
对于 MariaDB,我在临时安装后解决了问题
mariadb-connector-c
:
brew install mariadb-connector-c
sudo ln -s /usr/local/opt/mariadb-connector-c/bin/mariadb_config /usr/local/bin/mysql_config
source ~/path-to-you-prj-enveroment/bin/activate
pip install mysqlclient
deactivate
sudo rm /usr/local/bin/mysql_config
brew unlink mariadb-connector-c
我相信使用 MySQL 可以以类似的方式解决问题:
brew install mysql-client
sudo ln -s /opt/homebrew/opt/mysql-client/bin/mysql_config /usr/local/bin/mysql_config
source ~/path-to-you-prj-enveroment/bin/activate
pip install mysqlclient
deactivate
rm /usr/local/bin/mysql_config
brew unlink mysql-client
MySQL 似乎没有正确安装或 MySQL 不在路径中。当然,请在您的终端上尝试一下:
mysql -u root -p
。在你的情况下,它很可能会给出这个错误:zsh command not found
。因此,尝试将 MySQL 添加到您的路径中。您可以在此处查看如何将 MySQL 添加到 Mac OS 中的路径:
https://devdotcode.com/how-to-add-mysql-to-the-path-in-mac-os/。如果您的 MyQSL 安装正确,它应该可以工作。如果不是这种情况,请尝试正确重新安装 MySQL。
我使用了 python3 -m pip install mysql-client ,这似乎解决了我的问题。我怀疑 python2 的意外倾销会让很多人头疼。
对于我在 13.4.1 (c) (22F770820d) 上运行的 Macbook pro 16 2020 型号,以下步骤的 python 版本 3.11 解决了该问题。
brew update
brew unlink mariadb-connector-c
brew install mariadb
brew link --overwrite mariadb
pip install mysqlclient