我正在尝试使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 <module>
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?
#1楼
MySQL-python
软件包正在使用mysql_config
命令来了解主机上的mysql
配置。 您的主机没有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服务器。
#2楼
命令(也是mysql)mPATH可能丢失。
export PATH=$PATH:/usr/local/mysql/bin/
#3楼
我在尝试安装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...
希望这可以帮助。
谢谢。
#4楼
我正在使用以下命令在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...
#5楼
我通过以下步骤解决了此问题:
sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install
#6楼
您需要安装python-dev软件包:
sudo apt-get install python-dev
#7楼
我遇到了同样的问题,只是将* mysql_config *驻留的路径添加到环境变量PATH中,它对我有用。
#8楼
我认为,以下几行可以在终端上执行
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目录。
#9楼
sudo apt-get build-dep python-mysqldb
将安装所有依赖项以从PIP / easy_install构建软件包
#10楼
由于实际错误是
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源的存档,并将标头文件放置在正确的文件夹中,以包含
#11楼
sudo apt-get安装libmysqlclient-dev sudo apt-get安装python-dev sudo apt-get安装MySQL-python
注意,您也应该安装python-dev,像MySQL-python这样的软件包是从源代码编译的。 pythonx.x-dev软件包包含用于针对python进行链接的必要头文件。 为什么在Kubuntu 12.04中安装numpy需要python-dev
#12楼
以下内容适用于Ubuntu 12.04 LTS:
apt-get install libmysqlclient-dev python-dev
尽管一切正常,但我仍然继续执行以下操作:
export PATH=$PATH:/usr/local/mysql/bin/
#13楼
此方法仅适用于那些知道已安装Mysql但仍找不到mysql_config的用户。 如果python安装无法在系统路径中找到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安装
sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py安装
#14楼
在红帽上,我不得不做
sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python
然后它起作用了。
#15楼
只需输入:
$ sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python
这样可以解决这个问题。
#16楼
我遇到了这个问题,并通过将符号链接添加到mysql_config
来解决。
我已经用自制软件安装了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
#17楼
在我的Fedora 23机器上,我必须运行以下命令:
sudo dnf install mysql-devel
#18楼
对于Alpine Linux:
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDB是MySQL的直接替代品,并成为Alpine 3.2的新标准。 参见https://bugs.alpinelinux.org/issues/4264
#19楼
(特定于mac)我尝试了很多事情,但是这些命令最终对我有用。
-
brew install mysql
#安装mysql -
brew unlink mysql
-
brew install mysql-connector-c
-
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
#更新路径并将mysql bin文件夹设置为path -
sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
创建符号链接 -
pip install mysqlclient
#最终安装mysql-client
#20楼
在centos 7中,这对我有用:
yum install mariadb-devel
pip install mysqlclient
#21楼
到目前为止,所有解决方案(Linux)都需要sudo
或root权限才能安装。 如果您没有root权限并且没有sudo
这是一个解决方案。 (没有sudo apt install ...
):
- 从此镜像下载libmysqlclient-dev的.deb文件
- 导航到下载的文件,然后运行
dpkg -x libmysqlclient-dev_<version tag>.deb .
这将提取一个名为usr
的文件夹。 ./usr/bin/mysql_config
到$PATH
上的某个位置:ln -s
`pwd`
/usr/bin/mysql_config FOLDER_IN_YOUR_PATH
现在应该可以找到
mysql_config
在Ubuntu 18.04上测试。
#22楼
我有同样的问题。 我通过按照本教程在Ubuntu 16.04上使用python3-dev安装Python的方式解决了该问题:
sudo apt-get update
sudo apt-get -y upgrade
sudo apt-get install -y python3-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
现在您可以设置虚拟环境:
sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
#23楼
如果您使用的是macOS,并且已经通过brew install安装了mysql@5.7,请执行以下操作:
-
brew install mysql-connector-c
-
brew unlink mysql@5.7
-
brew link --overwrite --dry-run mysql@5.7
首先查看哪些符号链接被覆盖 -
brew link --overwrite --force mysql@5.7
实际覆盖与mysql相关的符号链接 -
pip install mysqlclient
#24楼
对于macOS Mojave,需要附加配置,编译器才能找到openssl,您可能需要设置:
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
#25楼
在CentOS 7中,应执行以下操作:
#step1:install mysql
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
#step2:
sudo yum install mysql-devel
#26楼
步骤1:-同时安装Python3和Python3-dev
sudo apt-get install python3 python3-dev
步骤2:- 安装Python和Mysql连接器
sudo apt-get install libmysqlclient-dev
步骤3:- 安装python mysql客户端
sudo apt-get install mysqlclient
这将解决您的问题
#27楼
mySQLdb是mysql的python接口,但不是mysql本身。 显然,mySQLdb需要命令“ mysql_config”,因此您需要先安装该命令。
您可以通过从shell运行“ mysql”来确认自己是否安装了mysql吗? 这应该给您一个响应,而不是“ mysql: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
参考: https : //github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797
#28楼
须藤apt-get install python-mysqldb
Python 2.5? 听起来您正在使用非常旧的Ubuntu Server版本(Hardy 8.04?)-请确认服务器使用的Linux版本。
一些其他信息:
从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 : python-mysqldb
Ubuntu ......
与Debian相同。
脚注:如果您确实使用的服务器发行版早于Ubuntu 10.04,则您不受官方支持,因此应尽快升级。
#29楼
我通过安装libmysqlclient来修复它:
sudo apt-get install libmysqlclient16-dev