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

zjm*_*126 791 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
Run Code Online (Sandbox Code Playgroud)

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

Fbo*_*Fbo 1341

系统上似乎缺少mysql_config或安装程序找不到它.确保mysql_config确实已安装.

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

sudo apt-get install libmysqlclient-dev
Run Code Online (Sandbox Code Playgroud)

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

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

sudo apt install default-libmysqlclient-dev
Run Code Online (Sandbox Code Playgroud)

  • 我的2c经验:`sudo apt-get install libmysqlclient-dev`为我工作,`sudo apt-get install python-mysqldb`没有帮助 (46认同)
  • 对于Mariadb来说,```sudo apt-get install libmariadbclient-dev```就可以了. (41认同)
  • 这仍然给我造成了错误.我使用`apt-get install python-mysqldb`代替. (21认同)
  • @JonatanLittke安装一个全球性的python-mysqldb类型违背了virtualenv IMO的观点. (19认同)
  • 如果这些解决方案不适合您,那么您可能仍需要安装python-dev:`apt-get install python-dev` (10认同)
  • Fedora 19:sudo yum install mysql-devel(为我解决了问题) (2认同)
  • 我还必须安装`libssl-dev` (2认同)
  • 如果你在Mac上,请确保你已经安装了mysql:`brew install mysql` (2认同)

Chr*_*lla 279

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

export PATH=$PATH:/usr/local/mysql/bin
Run Code Online (Sandbox Code Playgroud)

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

  • 这终于有效了!如果没有安装`mysql`,请使用`brew install mysql`,其位置为`/ usr/local/bin/mysql`(或`/ usr/local/Cellar/mysql/VERSION/bin /`如果不是符号链接). (10认同)
  • 如果你正在使用[bitnami的MAMP堆栈](http://bitnami.org/stack/mampstack),请使用`export PATH = $ PATH:/ Applications/mampstack-5.3.17-0/mysql/bin`如果你是另一方面,使用[此商业MAMP堆栈](http://www.mamp.info/)卸载它并获取bitnami,因为它是糟糕的并且不包含mysql标头. (6认同)
  • 要使路径永久添加到`/ etc/paths`的底部 - 您需要打开一个新的终端窗口来访问新路径. (3认同)

ste*_*ory 98

apt-get install libmysqlclient-dev python-dev
Run Code Online (Sandbox Code Playgroud)

似乎要做的伎俩.

  • 是的,对我来说只有libmysqlclient-dev还不够,python-dev也不见了. (2认同)

小智 86

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

对于Ubuntu:

$ sudo apt update
$ sudo apt install python-dev
$ sudo apt install python-MySQLdb
Run Code Online (Sandbox Code Playgroud)

对于CentOS:

$ yum install python-devel mysql-devel
Run Code Online (Sandbox Code Playgroud)

  • 这对我来说很有价值6.3!GG (3认同)
  • 也许值得添加 `python3-dev` / `python3-devel` (2认同)

nde*_*ker 30

您可以使用MySQL Connector/Python

通过PyPip安装

pip install mysql-connector-python
Run Code Online (Sandbox Code Playgroud)

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

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

  • 当我放弃mysqldb和丢失的mysql_config混乱时,这是唯一对我有用的东西.适合我的目的. (2认同)
  • @Volatil3 mysql-connector-python 对我来说作为 mysql-python 的开箱即用替代品效果很好。通过 pip 安装前者没有任何问题,并且消除了 mysql_config 错误,因为(用开发人员自己的话说)mysql 连接器是“纯 Python,不需要任何其他 MySQL 软件,因此不需要 C 库和编译”。希望有帮助。尝试此解决方案中提到的安装,看看是否仍然遇到该错误。 (2认同)

Zam*_*zal 30

如果你在MAC上全局安装它

brew install mysql
Run Code Online (Sandbox Code Playgroud)

然后像这样导出路径

export PATH=$PATH:/usr/local/mysql/bin
Run Code Online (Sandbox Code Playgroud)

最后全球或在你的venv

pip install MySQL-Python
Run Code Online (Sandbox Code Playgroud)


小智 26

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


Emi*_*yan 18

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

yum install mysql mysql-devel mysql-common mysql-libs gcc
Run Code Online (Sandbox Code Playgroud)

但后来我收到了这个错误:

_mysql.c:29:20: fatal error: Python.h: No such file or directory
Run Code Online (Sandbox Code Playgroud)

所以我安装了:

yum install python-devel
Run Code Online (Sandbox Code Playgroud)

这就是诀窍.


pen*_*han 9

对于 Linux

这对我有用

yum install python-devel mysql-devel
Run Code Online (Sandbox Code Playgroud)


Ale*_*ila 7

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

例如,这对我有用:

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
Run Code Online (Sandbox Code Playgroud)

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

Tho*_*rzl 6

OSX小牛队

由于osx mavericks和xcode开发工具的变化,您可能会在安装时遇到错误

clang: error: unknown argument: '-mno-fused-madd' [-Wunused-command-line-argument-hard-error-in-future]
Run Code Online (Sandbox Code Playgroud)

因此使用:

sudo ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install mysql-python
Run Code Online (Sandbox Code Playgroud)


Ale*_*lex 6

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

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

apk add mariadb-dev
Run Code Online (Sandbox Code Playgroud)

但这还不够,因为还缺少所有其他依赖项:

apk add python2 py2-pip gcc python2-dev musl-dev
Run Code Online (Sandbox Code Playgroud)


小智 5

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


Din*_*rma 5

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

sudo apt-get install libmariadbclient-dev
Run Code Online (Sandbox Code Playgroud)


air*_*aft 5

您应该安装mysql第一个:

yum install python-devel mysql-community-devel -y
Run Code Online (Sandbox Code Playgroud)

然后你可以安装mysqlclient

pip install  mysqlclient
Run Code Online (Sandbox Code Playgroud)