在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient
Posted
技术标签:
【中文标题】在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient【英文标题】:Install mysqlclient for Django Python on Mac OS X Sierra 【发布时间】:2017-09-22 13:27:27 【问题描述】:我已经安装了
Python 2.7.13 Django 1.11 mysql 5.7.17我想在 Django 中使用 MySQL,但在安装 mysql 连接器后,我尝试在 $ pip install mysqlclient
上安装 mysqlclient for Python,但我遇到了这个问题:
Collecting mysqlclient
Using cached mysqlclient-1.3.10.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/y_/c31n_1v12v169zfv829p_v_80000gn/T/pip-build-f51KhW/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "setup_posix.py", line 54, in get_config
libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
File "setup_posix.py", line 12, in dequote
if s[0] in "\"'" and s[0] == s[-1]:
IndexError: string index out of range
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/y_/c31n_1v12v169zfv829p_v_80000gn/T/pip-build-f51KhW/mysqlclient/
【问题讨论】:
遇到了同样的问题,这种方法奏效了:***.com/questions/43740481/… 【参考方案1】:今天这对我有用,在使用 brew install mysql
使用 Homebrew 安装 MySQL 服务器之后:
MYSQLCLIENT_CFLAGS=`pkg-config mysqlclient --cflags` \
MYSQLCLIENT_LDFLAGS=`pkg-config mysqlclient --libs` \
pip install mysqlclient
【讨论】:
【参考方案2】:brew install/upgrade/reinstall mysql
brew install mysql-client
export PATH="/usr/local/opt/openssl/bin:$PATH"
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
pip install mysqlclient
works perfectly
【讨论】:
请编辑您的答案以包含一些关于它如何回答问题的信息。这将使您的答案对原始海报和未来的访问者更容易理解和有用。谢谢。 我正在使用 mac 并尝试了互联网上可用的所有内容 2 天,除了您的解决方案之外没有任何效果。非常感谢。 我可以确认这适用于 macOS Catalina 10.15.5、Python 3.8、Django 3.0.7 和 mysql 8.0.19。谢谢!【参考方案3】:如果您不打算在您的计算机中安装 mysql
,请安装 mysql-client
而不是 mysql
brew install mysql-client
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile
source ~/.bash_profile
pip install mysqlclient
导出 LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
【讨论】:
最后一个命令在我的 Mac 上失败,并带有大量堆栈跟踪,开始于:[code]为收集的包构建***:mysqlclient 为 mysqlclient (setup.py) 构建***...错误命令的完整输出 /用户/tsmets/Documents/work/Projects/ISO27001RiskAssessment/site/venv/bin/python3.7 -u -c "import setuptools, tokenize;__file__='/private/var/folders/9l/ffh99l291kb9d_1_9mz3sq080000gn/T/pip-install -efrwnshd/mysqlclient/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec... [/code] 首先运行这些导出。你会得到它的工作。 @tsmets【参考方案4】:我需要以下内容来构建/安装mysqlclient
brew install mysql-client
# mysql-client is not on the `PATH` by default
export PATH="/usr/local/opt/mysql-client/bin:$PATH"
# openssl is not on the link path by default
export LIBRARY_PATH="$LIBRARY_PATH:/usr/local/opt/openssl/lib/"
那我可以pip wheel mysqlclient
/ pip install mysqlclient
成功
【讨论】:
【参考方案5】:对于 Mac: 首先从 App Store 下载 Xcode,从 https://dev.mysql.com/downloads/workbench/ 下载 MySqlWorkbench
在终端中运行以下命令,
$ brew install mysql
$ export PATH=$PATH:/Applications/MySQLWorkbench.app/Contents/MacOS
$ xcode-select --install
$ pip install mysqlclient
【讨论】:
这是唯一对我有用的东西,我认为最重要的是使用“brew install mysql”导致“brew install mysql-connector-c”我从问题中得到同样的错误。 这应该是答案【参考方案6】:使用brew安装mysql并将其添加到路径中:
$ brew install mysql
$ export PATH=/usr/local/mysql/bin:$PATH
$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/local/lib/libmysqlclient.18.dylib
$ pip install mysqlclient
【讨论】:
【参考方案7】:我也遇到过这个问题,下面是我的步骤:
1.brew install mysql-connector-c
2.pip install mysqlclient
然后遇到这个错误,我已经跟踪了源代码,但是解决了这个然后又出现了另一个错误。
所以我改变了安装mysqlclient的方式,只是:
1.brew install mysql
2.pip install mysqlclient
这对我有用,没有发生任何错误。
【讨论】:
这种方法对我不起作用。你能推荐点别的吗? 经过 2 个多小时的搜索并试图弄清楚如何使 mysqlclient 安装工作,我累了,绝望地尝试了你的解决方案......瞧!有效!谢谢!!!以上是关于在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient的主要内容,如果未能解决你的问题,请参考以下文章
在 Mac OS X (sierra & Mojave) 中启用 OpenMP 支持
如何在 mac os x sierra 上安装 libX11-dev
在 mac os x sierra 上使用 opencv c++ 编译 hello world
sh Mac OS X High Sierra / PHP Apache httpd配置节点NPM
Mac git pull失败,最新操作系统导致 SSH issues with Mac OS X High Sierra