Mac OS X - EnvironmentError:找不到mysql_config

时间:2014-08-23 07:08:19

标签: python mysql django macos

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

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

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

有什么想法吗?

请注意我不是一个虚拟的人。

11 个答案:

答案 0 :(得分:285)

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

  • 您安装了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-connector-python'而不是使用MySQL-Python,可以使用pip install mysql-connector-python进行安装。有关详情,请访问herehere

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

  4. 如果以上所有步骤都失败了,那么你可以尝试使用MacPorts安装'mysql',在这种情况下,文件'mysql_config'实际上会被称为'mysql_config5',在这种情况下,你必须这样做安装后:export PATH=$PATH:/opt/local/lib/mysql5/bin。您可以找到更多详细信息here

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

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

    我从(除了我的大脑)这些地方得到了答案(也许你可以查看它们,看它是否会有所帮助):1234

    我希望我能帮忙,并且很高兴知道这些是否有效。祝你好运。

答案 1 :(得分:5)

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

答案

Pip在相对于 Macintosh HD @

的Homebrew目录中寻找mysql二进制文件。
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

还有中提琴。记住这是一种氛围。

答案 2 :(得分:2)

当我安装mysqlclient时,会发生这种情况,

$ pip install mysqlclient

正如用户3429036所说,

$ brew install mysql

答案 3 :(得分:2)

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

这是我解决问题的步骤。

  1. 使用brew安装mysql-connector-c(如果已经安装了mysql,请先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"

答案 4 :(得分:1)

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

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

您需要做的是通过在bin文件中添加以下行,将MySQL /usr/local/mysql/bin文件夹(通常为PATH中的~/.bash_profile添加到您的export PATH="/usr/local/mysql/bin/:$PATH"文件中:

~/.bash_profile

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

mysqlclient

但是,在安装sudo xcodebuild -license之前,您需要接受XcodeBuild许可证:

mysqlclient

按照他们的指示注销您的家人,之后您应该可以安装pip install mysqlclient,而不会出现问题:

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

安装后,您必须通过将以下行添加到系统动态库路径中,来做另一件事来修复MySQL(Dynamic Library libmysqlclient.dylib not found)附带的运行时错误:

rewire

答案 5 :(得分:0)

如果您不想安装完整的mysql,我们可以通过安装mysqlclient来解决。 brew install mysqlclient cmd完成后,将要求将以下行添加到~/.bash_profile

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

关闭终端并启动新终端,然后继续进行pip install mysqlclient

答案 6 :(得分:0)

只需确保命令mysql_config在您的路径中即可。

答案 7 :(得分:0)

如果您使用 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"

答案 8 :(得分:0)

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

对于您的信息,sql_config位于bin目录中。

答案 9 :(得分:0)

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

答案 10 :(得分:-1)

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

下一步是:

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