【问题标题】:Mac OS X - EnvironmentError: mysql_config not foundMac OS X - EnvironmentError: mysql_config not found
【发布时间】:2014-10-17 00:54:36
【问题描述】:

首先,是的,我已经看过了:

pip install mysql-python fails with EnvironmentError: mysql_config not found

问题

我正在尝试在 Google App Engine 项目中使用 Django。但是,由于以下原因导致服务器无法正常启动,我一直无法启动:

ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

我做了一些研究,结果都表明必须安装 Mysql-python,因为它显然不在我的系统上。我实际上尝试卸载它并得到了这个:

Cannot uninstall requirement mysql-python, not installed

每当我真正尝试通过以下方式安装时:

sudo pip install MySQL-python

我收到一条错误消息:

raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

我已经试过跑步了:

export PATH=$PATH:/usr/local/mysql/bin

但这似乎没有帮助,因为我再次运行了安装命令,但它仍然失败。

有什么想法吗?

请注意,我不在 virtualenv 中。

【问题讨论】:

  • 您可以随时转到提出EnvironmentError 的文件并打印更多有用的调试信息,例如os.getcwd()。您还可以添加pdb.set_trace() 并弄清楚事情。

标签: python mysql django macos


【解决方案1】:

brew install mysql 将 mysql 添加到 /usr/local/Cellar/...,所以我需要将 :/usr/local/Cellar/ 添加到我的 $PATH 然后 which mysql_config 工作!

【讨论】:

    【解决方案2】:

    在我的情况下,问题是我在 python 虚拟环境中运行命令,但它没有 /usr/local/mysql/bin 的路径,尽管我已将它放入.bash_profile 文件。只是在虚拟环境中导出路径对我有用。

    供您参考,sql_config 位于 bin 目录中。

    【讨论】:

      【解决方案3】:

      如果您通过指定版本使用 Homebrew 安装了 mysql,那么 mysql_config 将出现在此处。 - /usr/local/Cellar/mysql@5.6/5.6.47/bin

      /usr/local/目录下使用ls命令可以找到sql bin的路径

      /usr/local/Cellar/mysql@5.6/5.6.47/bin
      

      像这样添加 bash 配置文件的路径。

      nano ~/.bash_profile
      
      export PATH="/usr/local/Cellar/mysql@5.6/5.6.47/bin:$PATH"
      

      【讨论】:

        【解决方案4】:

        我在 MacOS Catalina 上运行 Python 3.6。我的问题是我尝试安装 mysqlclient==1.4.2.post1 并不断抛出 mysql_config not found 错误。

        这是我为解决问题所采取的步骤。

        1. 使用 brew 安装 mysql-connector-c (如果你有 mysql 已经安装 unlink 先brew unlink mysql) - brew install mysql-connector-c
        2. 打开 mysql_config 并在第 112 行附近编辑文件
        # Create options 
        libs="-L$pkglibdir"
        libs="$libs -lmysqlclient -lssl -lcrypto"
        
        1. brew info openssl - 这将为您提供有关将 openssl 放入 PATH 需要做什么的更多信息
        2. 关于第 3 步,您需要这样做才能将 openssl 放入 PATH -echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
        3. 供编译器查找 openssl - export LDFLAGS="-L/usr/local/opt/openssl/lib"
        4. 供编译器查找 openssl - export CPPFLAGS="-I/usr/local/opt/openssl/include"

        【讨论】:

        • 谢谢!我尝试了很多东西,你的方法对我有用。
        【解决方案5】:

        我一直在调试这个问题 - 3 小时 17 分钟。让我特别恼火的是,我已经通过以前的 uni 工作在我的系统上安装了 sql,但是 pip/pip3 没有识别它。上面的这些线程以及我在互联网上搜索的许多其他线程有助于阐明问题,但实际上并没有解决问题。

        回答

        Pip 正在 Homebrew 目录中寻找 mysql 二进制文件,该目录相对于 Macintosh HD @

        /usr/local/Cellar/
        

        所以我发现这需要您进行一些更改

        第 1 步:如果尚未下载 MySql,请下载 https://dev.mysql.com/downloads/

        第 2 步:相对于 Macintosh HD 和 cd

        找到它
        /usr/local/mysql/bin
        

        第 3 步:打开终端并使用选择的文本编辑器后 - 我自己是个 Neovim 人,所以我输入了(Mac 不会自动附带...改天再讲一个故事)

        nvim mysql_config
        

        第 4 步:您将在大约第 112 行看到

        # Create options 
        libs="-L$pkglibdir"
        libs="$libs -l "
        

        改成

        # Create options 
        libs="-L$pkglibdir"
        libs="$libs -lmysqlclient -lssl -lcrypto"
        

        *你会注意到这个文件是只读的,所以如果你使用 vim 或 neovim

        :w !sudo tee %
        

        第 5 步:前往主目录并编辑 .bash_profile 文件

        cd ~
        

        然后

        nvim .bash_profile
        

        并添加

        export PATH="/usr/local/mysql/bin:$PATH"
        

        到文件然后保存

        第 6 步:相对于 Macintosh HD 定位路径并添加到其中

        cd /private/etc/
        

        然后

        nvim paths
        

        并添加

        /usr/local/mysql/bin
        

        *你会再次注意到这个文件是只读的,所以如果你使用 vim 或 neovim

        :w !sudo tee % 
        

        然后

        cd ~
        

        然后运行 ​​

        用你的更改刷新终端
        source .bash_profile
        

        终于

        pip3 install mysqlclient
        

        还有维奥拉。记住这是一种氛围。

        【讨论】:

        • libs 内部的mysql_config 已经如“更改为”部分所述。但是,将 PATH 添加到 private/etc 有助于允许以前失败的 mysqlclient 的全局安装。
        • 我已全局安装,但仍无法在我的虚拟环境中安装。看起来像一些 mysql_config 错误。关于如何在本地安装它的任何想法?
        【解决方案6】:

        此答案适用于不是从brew 而是从官方.dmg/.pkg 安装的MacOS 用户。该安装程序无法编辑您的PATH,导致开箱即用:

        1. 无法找到所有 MySQL 命令,如 mysqlmysqladminmysql_config 等,因此:
        2. "MySQL Preference Pane" 未能出现在系统偏好设置中,并且
        3. 您不能安装任何与 MySQL 通信的 API,包括mysqlclient

        您要做的是将 MySQL bin 文件夹(通常是 /usr/local/mysql/bin 添加到您的 PATH 中,方法是在您的 ~/.bash_profile 文件中添加此行:

        export PATH="/usr/local/mysql/bin/:$PATH"

        然后您应该重新加载您的 ~/.bash_profile 以使更改在您当前的终端会话中生效:

        source ~/.bash_profile

        不过,在安装 mysqlclient 之前,您需要接受 XcodeBuild 许可:

        sudo xcodebuild -license

        按照他们的指示注销您的家人,之后您应该可以毫无问题地安装mysqlclient

        pip install mysqlclient

        安装之后,您必须再做一件事来修复 MySQL (Dynamic Library libmysqlclient.dylib not found) 附带的运行时错误,方法是将此行添加到您的系统动态库路径:

        export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH

        【讨论】:

        • 在找到磁盘上的二进制文件后,我看到了您的答案,方法是运行 sudo lsof -i :3306 以查看活动 MySQL 进程的 PID,然后在其上运行 sudo -P <pid> 以查看其打开的文件。这提出了/usr/local/mysql-8.0.18-macos10.14-x86_64/bin,我将其添加到$PATH
        【解决方案7】:

        好的,首先,让我检查一下我是否和你在同一页面上:

        • 你安装了 python
        • 你做了brew install mysql
        • 你做了export PATH=$PATH:/usr/local/mysql/bin
        • 最后,你做了pip install MySQL-Python(或者pip3 install mysqlclient,如果使用python 3)

        如果您按照相同的顺序执行了所有这些步骤,但仍然出现错误,请继续阅读到最后,但是,如果您没有遵循这些确切的步骤,请尝试从一开始就遵循它们。

        所以,您按照这些步骤操作,但仍然出现错误,好吧,您可以尝试一些方法:

        1. 尝试从 bash 运行 which mysql_config。应该是找不到了。这就是为什么构建也找不到它的原因。尝试运行locate mysql_config 看看是否有任何返回。该二进制文件的路径需要在 shell 的 $PATH 环境变量中,或者需要在模块的 setup.py 文件中明确显示,假设它正在查找该文件的某个特定位置。

        2. 不要使用 MySQL-Python,尝试使用 'mysql-connector-python',可以使用 pip install mysql-connector-python 安装它。有关这方面的更多信息,请访问 herehere

        3. 手动查找“mysql/bin”、“mysql_config”和“MySQL-Python”的位置,并将这些都添加到$PATH环境变量中。

        4. 1234563安装后:export PATH=$PATH:/opt/local/lib/mysql5/bin。您可以找到更多详情here

        注意 1:我看到有人说安装 python-devlibmysqlclient-dev 也有帮助,但是我不知道这些软件包在 Mac OS 上是否可用。

        注意 2:另外,请确保尝试以 root 身份运行命令。

        我的答案来自(除了我的大脑)这些地方(也许你可以看看它们,看看是否有帮助):1234

        我希望我能提供帮助,并且很高兴知道其中任何一项是否有效。祝你好运。

        【讨论】:

        • 很好的解释,Linux 上的 FWIW,安装 python-dev 和 libmysqlclient-dev 通常是唯一需要做的事情,但在 osx 上,我需要做的就是更新我的浴缸。我 相信 在 linux 上,如果你不安装指定的开发库,你可以安装 mysql 而无需获取 mysql-python 的 python deps。 (犯了很多次这个错误,哈哈)
        • 升级到优胜美地后,它现在还抱怨缺少“stdio.h”。你可以去这里解决这个问题:stackoverflow.com/questions/19580758/…
        • 运行brew install mysql 修复了它。另外,这个命令which mysql-config 对我不起作用,但which mysql_config 起作用。
        • 我还必须将this line 添加到我的.bash_profile 文件中:export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
        • 我不得不指出brews安装export PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
        【解决方案8】:

        如果你不想安装完整的mysql,我们可以通过安装mysqlclient来解决这个问题 brew install mysqlclient 完成 cmd 后,它会要求在~/.bash_profile 中添加以下行:

        echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

        关闭终端并启动新终端并继续pip install mysqlclient

        【讨论】:

          【解决方案9】:

          我在安装 mysqlclient 时也会出现这种情况,

          $ pip install mysqlclient
          

          正如用户 3429036 所说,

          $ brew install mysql
          

          【讨论】:

            【解决方案10】:

            安装 brew 或 apt-get 对我来说也不容易,所以我通过:https://dev.mysql.com/downloads/connector/python/ 下载了 mysql,并安装了它。所以我可以在这个目录中找到mysql_config:/usr/local/mysql/bin

            下一步是:

            1. 导出 PATH=$PATH:/usr/local/mysql/bin
            2. pip install MySQL-python==1.2.5

            【讨论】:

              猜你喜欢
              • 2015-11-27
              • 2011-07-07
              • 2013-07-24
              • 2018-05-13
              • 2023-03-08
              • 2013-07-30
              相关资源
              最近更新 更多