【问题标题】:Install mysqlclient for Django Python on Mac OS X Sierra在 Mac OS X Sierra 上为 Django Python 安装 mysqlclient
【发布时间】: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/

【问题讨论】:

标签: python mysql django macos


【解决方案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 安装工作,我累了,绝望地尝试了你的解决方案......瞧!有效!谢谢!!!
        猜你喜欢
        • 2019-04-06
        • 1970-01-01
        • 2018-02-27
        • 2017-02-14
        • 2019-05-19
        • 1970-01-01
        • 2011-07-22
        • 2018-06-02
        • 1970-01-01
        相关资源
        最近更新 更多