pip安装mysql-python失败,并显示EnvironmentError:找不到mysql_config


823

这是我得到的错误

(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Downloading MySQL-python-1.2.3.tar.gz (70Kb): 70Kb downloaded
  Running setup.py egg_info for package mysql-python
    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
    Complete 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 1
Storing complete log in /home/zjm1126/.pip/pip.log
(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python
Downloading/unpacking mysql-python
  Running setup.py egg_info for package mysql-python
    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
    Complete 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 1
Storing complete log in /home/zjm1126/.pip/pip.log

我该怎么解决?


1
看到这个主题:[mysql_config找不到安装时MySQLdb的Python接口] [1]为我工作:) [1]:stackoverflow.com/questions/7475223/...
思加图

我是MAC OS用户,我通过这个问题解决了这个问题stackoverflow.com/questions/50940302/…–
PatricioS

Answers:


1397

看来您的系统上缺少mysql_config或安装程序找不到它。确保确实安装了mysql_config。

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

sudo apt-get install libmysqlclient-dev

也许mysql_config不在您的路径中,当您自己编译mysql套件时就是这种情况。

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

sudo apt install default-libmysqlclient-dev

24
那仍然为我制造了一个错误。我apt-get install python-mysqldb改用了。
Jonatan Littke'5

51
我的2c经验:sudo apt-get install libmysqlclient-dev对我sudo apt-get install python-mysqldb
有用

20
@JonatanLittke安装全局python-mysqldb有点违背virtualenv IMO的观点。
fncomp

42
对于Mariadb,sudo apt-get install libmariadbclient-dev成功了。
yuvilio

11
如果这些解决方案不适合您,则您可能仍需要安装python-dev:apt-get install python-dev
Anoyz 2013年

295

在Mac OS中,我只是在终端中运行此程序来修复:

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

这是我找到的最快的修复程序-将其添加到路径中,但是/etc/paths如果您打算在其他环境中安装MySQL-python,最好永久添加(即将其添加到)。

(在OSX Mountain Lion中测试)


6
如果您使用bitnami的甲基苯丙胺堆栈使用export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/bin如果您使用此商业MAMP栈,而另一方面,卸载并得到bitnami之一,因为它是狗屎,不包括MySQL的头。
Timmmm

3
要使该路径永久存在,请将其添加到的底部/etc/paths-您将需要打开一个新的终端窗口以访问该新路径。
rojoca

@Timmmm非常昂贵的解决方案,因为我的所有数据库都在官方版本上://还有其他方法可以解决此问题吗?
Volatil3

1
非常有帮助。如果您使用的是XAMPP,请使用export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Kevin London

10
终于可以了,谢谢!如果mysql未安装,也请使用brew install mysql该位置/usr/local/bin/mysql(或未/usr/local/Cellar/mysql/VERSION/bin/符号链接)。
阿齐兹·阿尔托2015年

102
apt-get install libmysqlclient-dev python-dev

似乎做到了。


2
是的,对我来说,仅libmysqlclient-dev还不够,python-dev也缺少。
Anderson Santos

从10.04(透明)就地升级后,在Ubuntu 12.04(精确)(32位)上,仅能解决这些错误。特别是附加的“ python-dev”!
2014年

也为我工作-python-dev是难题的最后一部分。已经安装了python-mysqldb,因此绝对不需要全部。
Tim S.

更新:对于Python3,您必须安装python3-dev
cezar

我需要执行此操作,还需要安装gcc才能成功安装。此外,它可能是最好不要做python-dev,而是指定特定版本,例如python2.7-devpython3.6-dev等等
蒂姆·蒂斯代尔

89

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

对于Ubuntu:

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

对于CentOS:

$ yum install python-devel mysql-devel

感谢centos提示。我整个上午都在追逐。
皮特·马西格

也许值得添加 python3-dev/python3-devel
Gergely M

36

如果您使用的是MAC,请全局安装

brew install mysql

然后像这样导出路径

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

比全球或您喜欢的任何方式

pip install MySQL-Python

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

pip3 install MySQL-Python

34

您可以使用MySQL Connector / Python

通过PyPip安装

pip install mysql-connector-python

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

在Launchpad上,有一个很好的示例,说明如何使用该库添加,编辑或删除数据


3
当我放弃mysqldb和丢失的mysql_config混乱时,这是唯一对我有用的东西。对于我的目的来说效果很好。
wh1tney13年

@wjoba您可以进一步解释吗?我正在安装py-mysql2pgsql并发现mysql_config东西的错误。我正在使用MAMP。mysqk连接器有什么作用?
Volatil3

1
@ Volatil3 mysql-connector-python对我来说可以很好地替代mysql-python。通过pip安装前者是没有问题的,并且摆脱了mysql_config错误,因为(用开发者自己的话)mysql连接器是“纯Python的,不需要任何其他MySQL软件,因此不需要C库和编译”。希望能有所帮助。请尝试此解决方案中提到的安装,然后查看是否仍然遇到错误。
wh1tney14年

在Ubuntu 14/4上,我得到:找不到符合要求的下载文件mysql-connector-python
Timo

在尝试了所有其他方法之后,此命令对我有用。

27

对于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


1
听起来好像您没有要为其pip安装Python二进制文件的正确包含文件。Python本身通常提供include位置;手动指定最有可能指向错误版本的路径。
马丁·皮特斯

sudo pip install MySQL-python由于错误,我不得不执行以下操作:copying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
bennythejudge

18

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

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

那就成功了。


1
我用过:sudo yum install mysql mysql-devel mysql-common mysql-libs gcc 在我的virtualenv之外。然后,我回到我的虚拟环境并运行pip install mysql-python,它起作用了。
tandy

1
dnf install mysql-devel gcc对我来说足够了,这取决于其余部分
Jens Timmerman

python-devel现在将给出错误,如果使用python 2.7,请尝试以下操作python27-devel
嘶嘶作响的代码

8

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

例如,这对我有用:

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

2
在人们想要连接到特定的已知数据库套接字的任何情况下,这都是一个未被充分理解的答案。它帮助我连接到独立的mysql数据库。这里的大多数解决方案仅建议重新安装(或安装第二个或第三个...等)msql客户端!
7yl4r


6

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

6

对于Linux

这对我有用

yum install python-devel mysql-devel

5

对于mariadb,请安装lib mariadb client-dev而不是libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

这正是我在与MariaDB一起使用Debian 9 Stretch时需要的东西
anhtran

4

您应该安装第mysql一个:

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

然后您可以安装mysqlclient

pip install  mysqlclient

2

有时,错误取决于实际原因。我们曾经遇到过通过python-mysqldb debian软件包安装mysql-python的情况。

一个不知道这一点的开发人员,无意中跑了出来,但pip uninstall mysql-python由于pip install mysql-python给出上述错误而无法恢复。

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

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


2

我在Terraform:light容器中遇到了同样的问题。它基于高山。

在那里,您必须使用以下命令安装mariadb-dev:

apk add mariadb-dev

但是,这还不够,因为还遗漏了所有其他依赖项:

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

2

要遵循的顺序。

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

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


1

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

MySQL-python 1.2.4b4(源)MySQL-5.6.19(二进制安装程序)Python 2.7(二进制安装程序)注意:在virtualenv中安装...

解压缩源代码,打开'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

现在,清理,构建和制作不会因找不到“ mysql_config”错误而失败。希望这可以帮助其他尝试利用其旧xserve的人:-)


1

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

sudo su
export PATH=$PATH:/usr/local/mysql/bin/
pip install mysql-python
exit

您就可以在OSX上运行了。现在,您有了一个更新的全局python。



0

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.