pip install mysql-python因EnvironmentError失败:找不到mysql_config

时间:2011-03-03 08:32:52

标签: python pip mysql-python

这是我得到的错误

(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

我该怎么做才能解决这个问题?

23 个答案:

答案 0 :(得分:1256)

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

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

sudo apt-get install libmysqlclient-dev

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

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

sudo apt install default-libmysqlclient-dev

答案 1 :(得分:274)

运行Mac OSX Mountain Lion,我只是在终端中运行它来修复:

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

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

答案 2 :(得分:96)

apt-get install libmysqlclient-dev python-dev

似乎可以做到这一点。

答案 3 :(得分:81)

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

对于Ubuntu:

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

对于CentOS:

$ yum install python-devel mysql-devel

答案 4 :(得分:25)

您可以使用MySQL Connector / Python

通过PyPip安装

pip install mysql-connector-python

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

在Launchpad上有a good example of how to add-, edit- or remove data的库。

答案 5 :(得分:25)

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

答案 6 :(得分:23)

如果你在MAC上 全局安装

brew install mysql

然后像这样导出路径

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

最后全球或在您的venv

pip install MySQL-Python

答案 7 :(得分:17)

我试图在Amazon EC2 Linux实例上安装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

这就是诀窍。

答案 8 :(得分:6)

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

例如,这对我有用:

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

答案 9 :(得分:5)

OSX Mavericks

由于osx mavericks&amp; amp; 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

答案 10 :(得分:4)

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

答案 11 :(得分:3)

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

sudo apt-get install libmariadbclient-dev

答案 12 :(得分:3)

您应首先安装mysql

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

然后您可以安装mysqlclient

pip install  mysqlclient

答案 13 :(得分:1)

有时错误取决于实际原因。我们有一个通过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恢复到原始状态。

答案 14 :(得分:1)

要遵循的顺序。

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。对我有用

答案 15 :(得分:0)

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

   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 found
Traceback (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_config
    libs = mysql_config("libs")
  File "/tmp/pip-build-bya8e734/mysqlclient/setup_posix.py", line 31, in mysql_config
    raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found

堆栈跟踪中的键是

/bin/sh: 1: mysql_config: not found

因为我的烧瓶应用程序运行所在的位置没有正确配置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

情况不同,但在此处发布是因为世界上可能有人面临相同的问题

答案 16 :(得分:0)

在 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/" >> ~/.zshrc
source ~/.zshrc

答案 17 :(得分:0)

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

答案 18 :(得分:0)

对于Linux

这对我有用

yum install python-devel mysql-devel

答案 19 :(得分:0)

我在Terraform中遇到了同样的问题:轻型容器。它以Alpine为基础。

你需要安装mariadb-dev:

apk add mariadb-dev

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

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

答案 20 :(得分:0)

如果您在虚拟环境中安装MySQL-python,则应检查点数版本,如果版本低于9.0.1,请更新

pip install --upgrade pip

答案 21 :(得分:0)

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

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

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

答案 22 :(得分:0)

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

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

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

DEFAULT_VERSION = "0.6.49"

保存。打开&#39; site.cfg&#39;提交并取消注释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

现在,使用&#39; mysql_config&#39;清理,构建和制作不会失败。找不到错误。 希望这有助于其他人尝试使用他们的旧xserves: - )