在 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"' &gt;&gt; ~/.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

如何在 MAC Sierra (MAMP) 上为 PHP7.1 启用 OPCache