pip安装mysql-python失败与环境错误:mysql_config没有找到

这是我得到的错误

(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-pythonDownloading/unpacking mysql-pythonDownloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloadedRunning setup.py egg_info for package mysql-pythonsh: mysql_config: not foundTraceback (most recent call last):File "<string>", line 14, in <module>File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>metadata, options = get_config()File "setup_posix.py", line 43, in get_configlibs = mysql_config("libs_r")File "setup_posix.py", line 24, in mysql_configraise EnvironmentError("%s not found" % (mysql_config.path,))EnvironmentError: mysql_config not foundComplete output from command python setup.py egg_info:sh: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
----------------------------------------Command python setup.py egg_info failed with error code 1Storing complete log in /home/zjm1126/.pip/pip.log(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-pythonDownloading/unpacking mysql-pythonRunning setup.py egg_info for package mysql-pythonsh: mysql_config: not foundTraceback (most recent call last):File "<string>", line 14, in <module>File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>metadata, options = get_config()File "setup_posix.py", line 43, in get_configlibs = mysql_config("libs_r")File "setup_posix.py", line 24, in mysql_configraise EnvironmentError("%s not found" % (mysql_config.path,))EnvironmentError: mysql_config not foundComplete output from command python setup.py egg_info:sh: mysql_config: not found
Traceback (most recent call last):
File "<string>", line 14, in <module>
File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in <module>
metadata, options = get_config()
File "setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
----------------------------------------Command python setup.py egg_info failed with error code 1Storing complete log in /home/zjm1126/.pip/pip.log

我能做些什么来解决这个问题?

672139 次浏览

您的系统似乎缺少mysql_config,或者安装程序找不到它。确保mysql_config真的安装了。

例如在Debian/Ubuntu上,您必须安装包:

sudo apt-get install libmysqlclient-dev

也许mysql_config不在你的路径上,自己编译的时候就会这样mysql套件。

更新时间:对于最新版本的debian/ubuntu(截至2018年),它是

sudo apt install default-libmysqlclient-dev

尝试sudo apt-get build-dep python-mysqldb

在Mac OS中,我只是在终端中运行这个来修复:

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

这是我找到的最快的修复-它将其添加到路径中,但我认为如果您计划在另一个环境中安装MySQL-python,最好将其永久添加(即将其添加到/etc/paths)。

(在OSX Mountain Lion中测试)

您可以使用MySQL连接器/Python

通过PyPip安装

pip install mysql-connector-python

更多信息可以在MySQL连接器/Python 1.0.5 beta公告博客上找到。

在Launchpad上,库的如何添加、编辑或删除数据的一个很好的例子

apt-get install libmysqlclient-dev python-dev

似乎做的伎俩。

我试图在Amazon EC2Linux实例上安装mysql-python,我必须安装这些:

yum install mysql mysql-devel mysql-common mysql-libs gcc

然后我得到了这个错误:

_mysql.c:29:20: fatal error: Python.h: No such file or directory

所以我安装了:

yum install python-devel

这就成功了。

对于上述问题可能有各种答案,下面是一个汇总的解决方案。

对于Ubuntu:

$ sudo apt update$ sudo apt install python-dev$ sudo apt install python-MySQLdb

对于CentOS:

$ yum install python-devel mysql-devel

OSX小牛队

由于osx mavericks和xcode开发工具中的更改,您可能会在安装时收到错误

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]

因此使用:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python

尝试在OS X Server 10.6.8上安装时遇到类似问题。这是我必须做的。使用:

MySQL-python 1.2.4b4(源代码)MySQL-5.6.19(二进制安装程序)Python 2.7(二进制安装程序)注意:在虚拟环境中安装…

解压源代码,打开distribute_setup.py并编辑DEFAULT_VERSION以使用最新版本的分发工具,如下所示:

DEFAULT_VERSION = "0.6.49"

保存。打开site.cfg文件并取消注释mysql_config的路径,使其看起来像(引用您自己的路径mysql_config):

# The path to mysql_config.# Only use this if mysql_config is not on your PATH, or you have some weird# setup that requires it.mysql_config = /usr/local/mysql/bin/mysql_config

现在,清理、构建和make将不会因“mysql_config”未找到错误而失败。希望这能帮助其他人尝试使用他们的旧x服务:-)

对于使用MariaDB而不是MySQL的任何人,解决方案是安装libmariadbclient-dev包并创建一个具有正确名称的配置文件的符号链接。

例如,这对我有用:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

对于centos用户:

yum install -y mysql-devel python-devel python-setuptools

然后

pip install MySQL-python


如果此解决方案不起作用,并打印gcc编译错误,如:
_mysql.c:29:20: error: Python.h: No such file or directory

您需要指定Python.h的路径,如下所示:
pip install --global-option=build_ext --global-option="-I/usr/include/python2.6" MySQL-python

您的sudo路径不知道您的本地路径……进入超级用户模式,添加路径,然后从那里安装它。

sudo suexport PATH=$PATH:/usr/local/mysql/bin/pip install mysql-pythonexit

你已经在OSX上运行了。现在你有了一个更新的全局python。

有时错误取决于实际原因。我们有一个通过python-mysqldb debian包安装mysql-python的案例。

一个不知道这一点的开发人员不小心运行了pip uninstall mysql-python,然后无法恢复,pip install mysql-python给出了上述错误。

pip uninstall mysql-python破坏了debian包的内容,当然pip install mysql-python失败了,因为debian包不需要任何开发文件。

在这种情况下,正确的解决方案是apt-get install --reinstall python-mysqldb,它将mysql-python恢复到其原始状态。

对于MariaDB安装libmaria db客户端-开发而不是客户端开发库libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

如果你在MAC上全局安装这个

brew install mysql

然后像这样导出路径

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

而不是全球或在你的静脉里,无论你喜欢什么

pip install MySQL-Python

注意:全局为python3,因为Mac可以同时拥有python2和3

pip3 install MySQL-Python

你应该先安装mysql

yum install python-devel mysql-community-devel -y

然后你可以安装mysqlclient

pip install  mysqlclient

如果您在虚拟环境中安装MySQL-python,您应该检查pip版本,如果版本早于9.0.1,请更新它

pip install --upgrade pip

我在Terraform遇到了同样的问题:轻型容器。它基于阿尔卑斯山。

在那里你必须安装mariadb-dev:

apk add mariadb-dev

但这还不够,因为还错过了所有其他依赖项:

apk add python2 py2-pip gcc python2-dev musl-dev

要遵循的顺序。

pip install mysqlclientsudo apt-get install python3-dev libmysqlclient-devpip install configparsersudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py

然后尝试再次安装MYSQL-python。这对我有用

为了Linux

这对我有用

yum install python-devel mysql-devel

在MacOS Mojave上,mysql_config位于 /usr/local/bin/而不是上面所指出的 /usr/local/mysql/bin,因此无需向路径添加任何内容。

在我的情况下,我的数据库在容器上运行,我的烧瓶应用程序在另一个容器上运行,当我尝试更新代码应用程序时出错了

   Complete output from command python setup.py egg_info:/bin/sh: 1: mysql_config: not found/bin/sh: 1: mariadb_config: not found/bin/sh: 1: mysql_config: not foundTraceback (most recent call last):File "<string>", line 1, in <module>File "/tmp/pip-build-bya8e734/mysqlclient/setup.py", line 15, in <module>metadata, options = get_config()File "/tmp/pip-build-bya8e734/mysqlclient/setup_posix.py", line 65, in get_configlibs = mysql_config("libs")File "/tmp/pip-build-bya8e734/mysqlclient/setup_posix.py", line 31, in mysql_configraise OSError("{} not found".format(_mysql_config_path))OSError: mysql_config not found

堆栈跟踪中的键是

/bin/sh: 1: mysql_config: not found

因为我的flask应用程序运行的地方没有正确配置mysql客户端,所以首先我安装了mysql服务器,然后安装

sudo apt-get install mysql-server-5.7 -y

然后开始MySQL

mansoor@LARC-mansur:~/Documents/clients/HR/DevopsSimulator/web$ sudo systemctl start mysql

然后安装flask-mysql包,这次它起作用了

mansoor@LARC-mansur:~/Documents/clients/HR/DevopsSimulator/web$ sudo pip3 install flask-mysqldb

这是不同的情况,但在这里发布,因为可能是世界上其他人面临同样的问题

在Mac上:

brew install mysql-client

定位mysql

mdfind mysql | grep bin

然后添加到路径

export PATH=$PATH:/usr/local/Cellar/mysql-client/8.0.23/bin/

或永久

echo "export PATH=$PATH:/usr/local/Cellar/mysql-client/8.0.23/bin/" >> ~/.zshrcsource ~/.zshrc

写于27 Aug,2021

我的macos版本是BigSur(14.4),mysql版本是mysql8。似乎在更高版本的mysql中,他们删除了my_config.h文件,但更改为mysql.h

所以你的人应该运行以下shell:

cd /usr/local/include/mysqlcp mysql.h my_config.h

之后,运行pip install MySQL-python,一切都会好起来的。