linux - 安装mysqldb python时找不到mysql_config
我试图让一个Python脚本在我通过ssh连接的linux服务器上运行。 该脚本使用mysqldb。 我有我需要的所有其他组件,但当我尝试通过setuptools安装mySQLdb时,如:
python setup.py install
我收到以下与mysql_config命令相关的错误报告。
sh: mysql_config: command not found
Traceback (most recent call last):
File "setup.py", line 15, in
metadata, options = get_config()
File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
libs = mysql_config("libs_r")
File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found
是否有其他人遇到此错误,如果是这样,您是如何解决它/我该怎么做才能成功安装mysqldb?
24个解决方案
505 votes
mySQLdb是mysql的python接口,但它不是mysql本身。 显然mySQLdb需要命令'mysql_config',所以你需要先安装它。
你可以通过从shell运行“mysql”来确认你是否安装了mysql本身? 这应该给你一个响应,而不是“mysql:command not found”。
您使用的是哪个Linux发行版? Mysql是为大多数Linux发行版预先打包的。 例如,对于debian / ubuntu,安装mysql就像这样简单
sudo apt-get install mysql-server
mysql-config在一个不同的包中,可以安装(再次假设debian / ubuntu):
sudo apt-get install libmysqlclient-dev
如果您正在使用mariadb,请更换mysql,然后运行
sudo apt-get install libmariadbclient-dev
amarillion answered 2019-01-08T08:39:16Z
157 votes
我正在使用Ubuntu 12.04安装python-mysql
pip install mysql-python
首先我遇到了同样的问题:
Not Found "mysql_config"
这对我有用
$ sudo apt-get install libmysqlclient-dev
然后我遇到了这个问题:
...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio
compilación terminada.
error: command 'gcc' failed with exit status 1
然后我尝试了
apt-get install python-dev
然后我很开心:)
pip install mysql-python
Installing collected packages: mysql-python
Running setup.py install for mysql-python
building '_mysql' extension
gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
In file included from _mysql.c:44:0:
/usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
/usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so
Successfully installed mysql-python
Cleaning up...
xtornasol512 answered 2019-01-08T08:40:09Z
27 votes
以下在Ubuntu 12.04 LTS上为我工作:
apt-get install libmysqlclient-dev python-dev
虽然它有效但我还是继续做下面的事情:
export PATH=$PATH:/usr/local/mysql/bin/
nasowah answered 2019-01-08T08:40:37Z
24 votes
在Red Hat我必须这样做
sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python
然后它奏效了。
Elliott answered 2019-01-08T08:41:05Z
23 votes
我在尝试安装mysql-python时遇到了同样的错误。
这是我修复它的方式。
sudo PATH=/usr/local/mysql/bin/:$PATH pip install mysql-python
问题是安装程序无法在默认路径中找到mysql_config。 现在它可以..它工作..
15 warnings generated.
clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -arch x86_64
Successfully installed mysql-python
Cleaning up...
希望这可以帮助。
谢谢。
Mayank R Jain answered 2019-01-08T08:41:43Z
17 votes
我通过以下步骤解决了这个问题:
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install
zhaozhi answered 2019-01-08T08:42:05Z
16 votes
命令(也是mysql)mPATH可能会丢失。
export PATH=$PATH:/usr/local/mysql/bin/
samwize answered 2019-01-08T08:42:33Z
8 votes
我通过安装libmysqlclient来修复它:
sudo apt-get install libmysqlclient16-dev
thoslin answered 2019-01-08T08:42:55Z
7 votes
MySQL-devel程序包正在使用MySQL-devel命令了解主机上的MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm配置。 您的主机没有mysql_config命令。
dev.mysql.com的MySQL开发库包(MySQL-devel-xxx)提供了这个命令以及MySQL-python包所需的库。 MySQL-devel程序包位于下载 - 社区服务器区域中。 MySQL开发库包名称以MySQL-devel开头,并且基于MySQL版本和Linux平台(例如MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm)而有所不同。
请注意,您不需要安装mysql服务器。
John Livingston answered 2019-01-08T08:43:30Z
5 votes
在我的Fedora 23机器上,我必须执行以下操作:
sudo dnf install mysql-devel
Raptor answered 2019-01-08T08:43:51Z
5 votes
对于Alpine Linux:
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDB是MySQL的直接替代品,并成为Alpine 3.2的新标准。 见[https://bugs.alpinelinux.org/issues/4264]
aboutaaron answered 2019-01-08T08:44:26Z
5 votes
(具体到mac)我已经尝试了很多东西,但这些命令最终对我有用。
brew install mysql #install mysql
pip install mysqlclient
pip install mysqlclient
pip install mysqlclient #upcate path并将mysql bin文件夹设置为path
pip install mysqlclient #create symlink
pip install mysqlclient #six mysql-client finally
Pulkit Pahwa answered 2019-01-08T08:46:21Z
4 votes
我想,以下行可以在终端上执行
sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/
这个mysql_config目录适用于MacOSx上的zend服务器。 你可以像以下几行一样为linux做这件事
sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/
这是默认的linux mysql目录。
hkulekci answered 2019-01-08T08:46:56Z
4 votes
如果通过添加符号链接到mysql,我遇到了这个问题并解决了。
我用homebrew安装了mysql,并在输出中看到了这个。
Error: The `brew link` step did not complete successfully
根据你如何得到mysql它将在不同的地方。 在我的情况下/usr/local/Cellar/mysql
一旦你知道它在哪里,你就应该能够找到python正在寻找它的符号链接。/usr/local/mysql
这对我有用。
ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config /usr/local/mysql/bin/mysql_config
Schechter answered 2019-01-08T08:47:43Z
3 votes
你需要安装python-dev包:
sudo apt-get install python-dev
ebarch answered 2019-01-08T08:48:05Z
2 votes
此方法仅适用于那些知道已安装Mysql但仍无法找到mysql_config的人。 如果python install在您的系统路径中找不到mysql_config,则会发生这种情况,如果您通过.dmg Mac Package完成安装或在某个自定义路径上安装,则会发生这种情况。 MySqlDB最简单,最简单的方法是更改site.cfg。 找到可能在/ usr / local / mysql / bin /中的mysql_config,然后像下面一样更改变量mysql_config并再次运行安装。 别忘了删除“#”取消注释
改变下面的行
“#mysql_config = / usr / local / bin / mysql_config”
至
“mysql_config = / usr / local / mysql / bin / mysql_config”
取决于系统中的路径。
顺便说一句,我在更改site.cfg后使用了python install
sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install
Ahsan.Amin answered 2019-01-08T08:49:07Z
2 votes
在centos 7中,这对我有用:
yum install mariadb-devel
pip install mysqlclient
Rajiv Sharma answered 2019-01-08T08:49:29Z
1 votes
sudo apt-get install python-mysqldb
Python 2.5? 听起来你使用的是非常旧版本的Ubuntu Server(Hardy 8.04?) - 请确认服务器使用的是哪个Linux版本。
在ubuntu包数据库上搜索python-mysql
一些额外的信息:
来自mysql-python的自述文件 -
红帽Linux.............
MySQL-python预装在Red Hat Linux 7.x及更新版本中。 这个包括Fedora Core和Red Hat Enterprise Linux。 你也可以如上所述构建您自己的RPM包。
Debian GNU / Linux................
打包为python-mysqldb_ ::
# apt-get install python-mysqldb
或者使用Synaptic。
.. _python-mysqldb:[http://packages.debian.org/python-mysqldb]
Ubuntu的......
与Debian相同。
脚注:如果您确实使用的是比Ubuntu 10.04更早的服务器分发版,那么您将失去官方支持,并且应该尽快升级。
Gary answered 2019-01-08T08:51:16Z
1 votes
我遇到了同样的问题,只是添加了* mysql_config *驻留到环境变量PATH的路径,它对我有用。
flyer answered 2019-01-08T08:51:38Z
1 votes
sudo apt-get build-dep python-mysqldb将安装所有依赖项以从PIP / easy_install构建程序包
Thomas Grainger answered 2019-01-08T08:52:03Z
1 votes
因为实际错误是
gcc ... -I/usr/include/python2.7 ...
_mysql.c:29:20: error: Python.h: No such file or directory
如果你不能安装python-dev或python-devel包,你可以从[http://hg.python.org/]下载所需版本的python源存档,并将头文件放在适当的文件夹中
Oleg Neumyvakin answered 2019-01-08T08:52:32Z
1 votes
只需输入:
$ sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python
这将解决这个问题。
Luciano D. Mota answered 2019-01-08T08:53:00Z
0 votes
到目前为止,所有解决方案(Linux)都需要mysql_config或root权限才能安装。如果您没有root权限且没有$PATH,那么这是一个解决方案。(no `pwd`):
下载libmysqlclient-dev的.deb文件,例如 从这面镜子
导航到下载的文件并运行mysql_config这将解压缩名为$PATH的文件夹。
符号链接mysql_config到$PATH上的某处:ln -s`pwd` / usr / bin / mysql_config FOLDER_IN_YOUR_PATH
它现在应该能够找到mysql_config
在Ubuntu 18.04上测试过。
RunOrVeith answered 2019-01-08T08:54:01Z
-2 votes
sudo apt-get install libmysqlclient-devsudo apt-get install python-devsudo apt-get install MySQL-python
你也应该安装python-dev,像MySQL-python这样的软件包是从源代码编译的。 pythonx.x-dev软件包包含用于链接python的必要头文件。 为什么在Kubuntu 12.04中安装numpy需要python-dev
Ivan Wang answered 2019-01-08T08:54:32Z