pip安装mysql-python与EnvironmentError失败:找不到mysql_config

这是我得到的错误

(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 

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

看来你的系统上缺lessmysql_config,或者安装程序找不到它。 确保mysql_config是真正安装的。

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

 sudo apt-get install libmysqlclient-dev 

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

运行Mac OSX Mountain Lion,我只是在terminal上运行以解决这个问题:

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

这是我find的最快的修复方法 – 它将其添加到path中,但是如果您打算在另一个环境中安装MySQL-python,我认为最好永久添加它(即将其添加到/etc/paths )。

 apt-get install libmysqlclient-dev python-dev 

似乎要做的伎俩。

上述问题可能有各种答案,下面是一个综合解决scheme。

对于Ubuntu:

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

对于CentOS:

 yum install python-devel mysql-devel 

你可以使用MySQL连接器/ Python

通过PyPip安装

 pip install mysql-connector-python 

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

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

我试图在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 

那就是诀窍。

对于centos用户:

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

然后

pip install MySQL-python


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

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

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 

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

对于任何使用MariaDB而不是MySQL的人来说,解决scheme是安装libmariadbclient-dev软件包,并使用正确的名称创build符号链接到configuration文件。

例如这为我工作:

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

如果您在MAC上,请在全球范围内安装

 brew install mysql 

然后像这样输出path

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

最后在全球或在你的venv

 pip install MySQL-Python 

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

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

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

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

为mariadb安装lib mariadb client-dev而不是libmysqlclient-dev

 sudo apt-get install libmariadbclient-dev 

有一个类似的问题试图安装在OS X服务器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的path,使其看起来像(引用自己的path到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 

现在干净,build立和使不会失败,'mysql_config'找不到错误。 希望这可以帮助别人试图使用他们的旧版本:-)

你的sudopath不知道你的本地path…进入超级用户模式,添加path,并从那里安装。

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

你在OSX上运行起来。 现在你有一个更新的全球Python。