我试图让一个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?


mySQLdb是mysql的python接口,但它不是mysql本身。显然mySQLdb需要'mysql_config'命令,所以你需要先安装它。

你能确认你是否安装了mysql本身,通过运行“mysql”从shell?这应该给你一个响应,而不是“mysql:命令未找到”。

你用的是哪个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


使用apt-get install python-mysqldb

Python 2.5吗?听起来你使用的是一个非常旧的Ubuntu服务器(Hardy 8.04?) -请确认服务器使用的Linux版本。

Python-mysql搜索ubuntu包数据库

一些附加信息:

来自mysql-python -的README

红帽Linux .............

MySQL-python是在Red Hat Linux 7中预先打包的。X和更新的。这 包括Fedora核心和红帽企业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更老的服务器,那么你已经不受官方支持了,应该尽早升级。


我通过安装libmysqlclient来解决这个问题:

sudo apt-get install libmysqlclient16-dev

mysql -python包正在使用mysql_config命令来了解主机上的mysql配置。您的主机没有mysql_config命令。

来自dev.mysql.com的MySQL开发库包(MySQL-dev -xxx)提供了该命令和MySQL-python包所需的库。MySQL-devel包可以在下载社区服务器区找到。MySQL开发库包名称以MySQL-devel开头,根据MySQL版本和linux平台的不同而有所不同(例如MySQL- develop -5.5.24-1.linux2.6.x86_64.rpm)。

注意,您不需要安装mysql服务器。


命令(mysql也是)mPATH可能会丢失。

导出路径= $路径:/ usr /地方/ mysql / bin /


当我试图安装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...

希望这能有所帮助。

谢谢。


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

(如果您使用的是python3,请改为安装python3-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...

我通过以下步骤解决了这个问题:

sudo apt-get install libmysqlclient-dev
sudo apt-get install python-dev
sudo python setup.py install

您需要安装python-dev包:

sudo apt-get install python-dev

我遇到了同样的问题,只是将*mysql_config*所在的路径添加到环境变量path中,它为我工作。


我认为,下面的行可以在终端上执行

 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目录。


sudo apt-get build-dep python-mysqldb将安装所有依赖项以从PIP/easy_install构建包


实际误差是

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源文件,并将头文件放在适当的文件夹中进行包含


安装libmysqlclient-dev Sudo apt-get install python-dev sudo apt-get install MySQL-python

注意你也应该安装python-dev,像MySQL-python这样的包是从源代码编译的。pythonx。X-dev包包含针对python进行链接所需的头文件。为什么在Kubuntu 12.04中安装numpy需要python-dev


下面是我在Ubuntu 12.04 LTS上使用的:

apt-get install libmysqlclient-dev python-dev

尽管它很有效,但我还是继续做了下面的事情:

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

This method is only for those who know that Mysql is installed but still mysql_config can't be find. This happens if python install can't find mysql_config in your system path, which mostly happens if you have done the installation via .dmg Mac Package or installed at some custom path. The easiest and documented way by MySqlDB is to change the site.cfg. Find the mysql_config which is probably in /usr/local/mysql/bin/ and change the variable namely mysql_config just like below and run the installation again. Don't forget to un-comment it by removing "#"

以下更改

mysql_config = /usr/local/bin/mysql_config

to

mysql_config = /usr/local/ mysql_bin /mysql_config"

这取决于系统中的路径。

顺便说一下,我在更改site.cfg后使用python安装

sudo /System/Library/Frameworks/ python .framework/Versions/2.7/bin/python setup.py install


在红帽上,我不得不这么做

sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python

然后就成功了。


类型:

$ sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python

这将解决这个问题。


我有这个问题,并解决了如果添加一个符号链接到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

在我的Fedora 23机器上,我必须运行以下程序:

sudo dnf install mysql-devel

对于Alpine Linux:

添加mariadb-dev mariadb-client mariadb-libs

MariaDB是MySQL的替代品,并在Alpine 3.2成为新标准。参见https://bugs.alpinelinux.org/issues/4264


(针对Mac OS X)

我尝试了很多方法,但这组命令最终对我有用。

安装mysql 安装mysql 解除mysql链接 安装mysql-connector-c 将“mysql bin”文件夹添加到“PATH”目录下 导出路径= / usr /地方/地窖/ mysql / 8.0.11 / bin:美元的道路 mkdir /usr/local/Cellar/lib/ 创建符号链接 sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21。dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib 重新安装openssl(源代码) 最后,安装mysql-client LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient . sh

更新: 如果这行不通,@vinyll建议在第8步之前运行brew link mysql。


这对我来说很管用:

yum install mariadb-devel
pip install mysqlclient

到目前为止,所有解决方案(Linux)都需要sudo或root权限才能安装。 这里有一个解决方案,如果你没有根权限,没有sudo。(no sudo apt install…)

下载libmysqlclient-dev的.deb文件,例如从这个镜像 导航到下载的文件并运行dpkg -x libmysqlclient-dev_<version tag>.deb。这将提取一个名为usr的文件夹。 Symlink ./usr/bin/mysql_config到你的$PATH: ln -s ' pwd ' /usr/bin/mysql_config FOLDER_IN_YOUR_PATH 它现在应该能够找到mysql_config

在Ubuntu 18.04上测试。


我也有同样的问题。我通过遵循本教程在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

如果你在macOS上,并且已经通过brew install安装了mysql@5.7:

安装mysql-connector-c Brew unlink mysql@5.7 酿造链接—覆盖—先运行mysql@5.7,看看哪些符号链接被覆盖 Brew link—overwrite—强制mysql@5.7用mysql@5.7实际覆盖mysql相关的符号链接 PIP安装mysqlclient


对于macOS Mojave,需要额外的配置,为了让编译器找到openssl,您可能需要设置:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

在CentOS 7中,应该做以下事情:

#step1:install mysql 
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

#step2:
sudo yum install mysql-devel

or

sudo yum install mysql-community-devel

步骤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

这将解决你的问题


libmysqlclient-dev包已弃用,因此使用下面的命令来修复它。

libmysqlclient-dev包不可用,但由另一个包引用。 这可能意味着包丢失了,已经过时了,或者 只能从其他来源获得

sudo apt-get install default-libmysqlclient-dev

在CentOS 7中,yum安装mysql-devel而不是yum安装mysql-community-devel

这并不需要你添加mysql回购。


在MacOS (OS/X) Catalina上,我发现我需要这样做:

 export PATH=$PATH:/usr/local/bin/:/usr/local/mysql-5.7.16-osx10.11-x86_64/bin/

在我的电脑上,mysql命令在/usr/local/bin(来自标准MacOS安装程序,而不是“brew”)。


我认为在2020年解决这个问题最方便的方法是使用另一个python包。我们不需要安装任何其他二进制软件。

试试这个

PIP安装mysql-connector-python

然后

进口mysql.connector Mydb = mysql.connector.connect( 主机= " ", 用户= " ", passwd = " ", 数据库= " " ) Cursor = mydb。光标(缓冲= True) 游标。执行(“显示表;”) 游标。Execute ('insert into test values (null, "a",10)') mydb.commit () mydb.disconnect ()


python 3.5.2 +任何未来版本

Sudo apt-get install libmysqlclient-dev python-dev


同样,我得到了同样的问题 我通过以下步骤解决了这个问题: 首先运行这个命令

sudo apt-get install libmysqlclient-dev

然后安装

pip install mysqlclient==2.1.0

这对我来说很管用


Debian 11安装libmariadb-dev-compat为pip install mysqlclient提供mysql_config二进制文件