ChatGPT解决这个技术问题 Extra ChatGPT

pip install mysql-python 失败并出现 EnvironmentError: mysql_config not found

这是我得到的错误

(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

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

看到这个线程:[安装mysqldb python接口时找不到mysql_config][1]为我工作:)[1]:stackoverflow.com/questions/7475223/…
我是 MAC OS 用户我用这个问题解决了这个问题 stackoverflow.com/questions/50940302/…

A
Antony Hatchkins

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

例如,在 Debian/Ubuntu 上,您必须安装该软件包:

sudo apt-get install libmysqlclient-dev

也许mysql_config不在你的路径中,当你自己编译mysql套件时会出现这种情况。

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

sudo apt install default-libmysqlclient-dev

这仍然对我造成了错误。我改用 apt-get install python-mysqldb
我的 2c 体验:sudo apt-get install libmysqlclient-dev 为我工作,sudo apt-get install python-mysqldb 没有帮助
@JonatanLittke 安装一个全局的 python-mysqldb 类型违背了 virtualenv IMO 的观点。
对于 Mariadb,sudo apt-get install libmariadbclient-dev 成功了。
如果这些解决方案不适合您,那么您可能仍需要安装 python-dev:apt-get install python-dev
C
Chris Villa

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

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

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

(在 OSX Mountain Lion 中测试)


如果您使用的是 bitnami's MAMP stack,请使用 export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/bin 如果您使用的是 this commercial MAMP stack,请卸载它并获取 bitnami ,因为它很糟糕并且不包含 mysql 标头。
要使路径永久化,请将其添加到 /etc/paths 的底部 - 您需要打开一个新的终端窗口才能访问新路径。
@Timmmm 相当昂贵的解决方案,因为我所有的数据库都在官方版本上:/还有其他方法可以解决这个问题吗?
非常有帮助。如果您使用 XAMPP,请将其用作 export PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
这终于奏效了谢谢!此外,如果未安装 mysql,请使用位置为 /usr/local/bin/mysqlbrew install mysql(如果未安装符号链接,则使用 /usr/local/Cellar/mysql/VERSION/bin/)。
s
steve-gregory
apt-get install libmysqlclient-dev python-dev

似乎成功了。


是的,对我来说只有 libmysqlclient-dev 还不够,python-dev 也不见了。
在从 10.04 (lucid) 就地升级后的 Ubuntu 12.04 (precise) (32-Bit) 上,只有这确实解决了这些错误。特别是附加的“python-dev”!
也为我工作——python-dev 是最后一块拼图。已经安装了 python-mysqldb,所以这绝对不是所有需要的。
更新:对于 Python3,您必须安装 python3-dev
我需要这样做并安装 gcc 才能成功安装。此外,最好不要执行 python-dev,而是指定特定版本,例如 python2.7-devpython3.6-dev 等。
g
galoget

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

对于 Ubuntu:

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

对于 CentOS:

$ yum install python-devel mysql-devel

感谢 centos 提示。我整个上午都在追这个。
也许值得添加 python3-dev / python3-devel
Z
Zaman Afzal

如果您在 MAC 上,请全局安装

brew install mysql

然后像这样导出路径

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

比全球范围内或在你喜欢的任何地方

pip install MySQL-Python

注意:全局用于 python3,因为 Mac 可以同时拥有 python2 和 3

pip3 install MySQL-Python

如果您仍然收到有关 mysqlclient 的错误,请遵循此 stackoverflow.com/questions/49025594/…
n
ndequeker

您可以使用 MySQL 连接器/Python

通过 PyPip 安装

pip install mysql-connector-python

可在 MySQL Connector/Python 1.0.5 beta announcement 博客上找到更多信息。

在 Launchpad 上,库中有 a good example of how to add-, edit- or remove data


当我放弃 mysqldb 和丢失的 mysql_config 混乱时,这是唯一对我有用的东西。很适合我的目的。
@wjoba 你能进一步解释一下吗?我正在安装 py-mysql2pgsql 并发现 mysql_config 的错误。我正在使用 MAMP。 mysqk连接器有什么作用?
@Volatil3 mysql-connector-python 对我来说是 mysql-python 的开箱即用替代品。通过 pip 安装前者没有任何问题,并且消除了 mysql_config 错误,因为(用开发人员自己的话说)mysql 连接器是“纯 Python,不需要任何其他 MySQL 软件,因此不需要 C 库和编译。”希望有帮助。尝试此解决方案中提到的安装,看看是否仍然遇到错误。
在 Ubuntu 14/4 上,我得到:找不到任何满足 mysql-connector-python 要求的下载
l
lancerex

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


这听起来好像您没有安装 Python 二进制 pip 的正确包含文件。 Python 本身通常提供包含位置;手动指定路径最有可能指向错误版本
由于错误,我不得不执行 sudo pip install MySQL-pythoncopying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
E
Emil Davtyan

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

这就是诀窍。


我使用:sudo yum install mysql mysql-devel mysql-common mysql-libs gcc 在我的 virtualenv 之外。然后,我返回到我的虚拟环境并运行 pip install mysql-python 并且它起作用了。
dnf install mysql-devel gcc 对我来说已经足够了,这取决于其余的
python-devel 现在会报错,如果使用 python 2.7 试试这个 python27-devel
A
Alexandru Chirila

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

例如,这对我有用:

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

这是一个被低估的答案,在任何想要连接到特定的已知数据库套接字的情况下都非常有用。它帮助我连接到一个独立的 mysql 数据库。这里的大多数解决方案只是建议重新安装(或安装第二个或第三个......等)msql 客户端!
p
penny chan

对于 Linux

这对我有用

yum install python-devel mysql-devel

R
Rob Hruska

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


T
Thomas Schwärzl

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

D
Dinesh Sharma

对于 mariadb 安装 libmariadbclient-dev 而不是 libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

正是我在使用 Debian 9 Stretch 和 MariaDB 时所需要的
a
aircraft

您应该先安装 mysql

yum install python-devel mysql-community-devel -y

然后您可以安装 mysqlclient

pip install  mysqlclient

A
Alex

我在 Terraform:light 容器中遇到了同样的问题。它基于阿尔卑斯山。

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

apk add mariadb-dev

但这还不够,因为还遗漏了所有其他依赖项:

apk add python2 py2-pip gcc python2-dev musl-dev

e
eMBee

有时错误取决于实际原因。我们有一个通过 python-mysqldb debian 包安装 mysql-python 的案例。

一位不知道这一点的开发人员意外运行了 pip uninstall mysql-python,然后由于 pip install mysql-python 出现上述错误而无法恢复。

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

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


d
driftking9987

要遵循的顺序。

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

然后尝试再次安装 MYSQL-python。这对我有用


O
Omar Aziz

在 Mac 上:

brew install mysql-client

定位 mysql

mdfind mysql | grep bin

然后添加到路径

export PATH=$PATH:/usr/local/Cellar/mysql-client/8.0.23/bin/

或永久

echo "export PATH=$PATH:/usr/local/Cellar/mysql-client/8.0.23/bin/" >> ~/.zshrc
source ~/.zshrc

B
Brad Herdson

尝试在 OS X Server 10.6.8 上安装时遇到类似问题。这是我必须做的。使用:

MySQL-python 1.2.4b4 (source) MySQL-5.6.19 (binary installer) Python 2.7 (binary installer) 注意:安装在 virtualenv...

解压源代码,打开“distribute_setup.py”并编辑 DEFAULT_VERSION 以使用最新版本的分发工具,如下所示:

DEFAULT_VERSION = "0.6.49"

节省。打开“site.cfg”文件并取消注释 mysql_config 的路径,使其看起来像(参考您自己的 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

现在 clean,build 和 make 不会因为 'mysql_config' not found 错误而失败。希望这可以帮助其他人尝试使用他们的旧 xserve :-)


P
Paul Kenjora

您的 sudo 路径不知道您的本地路径...进入超级用户模式,添加路径,然后从那里安装。

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

你已经在 OSX 上运行起来了。现在你有一个更新的全局 python。


A
Albert Chen

如果您在虚拟环境中安装 MySQL-python,您应该检查 pip 版本,如果版本低于 9.0.1,请更新它

pip install --upgrade pip

请参阅 stackoverflow.com/questions/7475223/… 我认为您的回答不会有帮助
J
Juicern

写于 2021 年 8 月 27 日

我的macos版本是BigSur(14.4),mysql版本是mysql8。似乎在更高版本的 mysql 中,他们删除了 my_config.h 文件但更改为 mysql.h

所以你们应该运行以下shell:

cd /usr/local/include/mysql
cp mysql.h my_config.h

之后,运行 pip install MySQL-python,一切都会好起来的。


A
Avidan Efody

在 MacOS Mojave 上,mysql_config 位于 /usr/local/bin/ 而不是 /usr/local/mysql/bin 如上所述,因此无需向路径添加任何内容。


M
Mansur Ul Hasan

在我的情况下,当我尝试更新代码时,我的数据库正在容器上运行,而我的烧瓶应用程序正在另一个容器上运行,应用程序因错误而崩溃

   Complete output from command python setup.py egg_info:
/bin/sh: 1: mysql_config: not found
/bin/sh: 1: mariadb_config: not found
/bin/sh: 1: mysql_config: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-bya8e734/mysqlclient/setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/tmp/pip-build-bya8e734/mysqlclient/setup_posix.py", line 65, in get_config
    libs = mysql_config("libs")
  File "/tmp/pip-build-bya8e734/mysqlclient/setup_posix.py", line 31, in mysql_config
    raise OSError("{} not found".format(_mysql_config_path))
OSError: mysql_config not found

堆栈跟踪中的键是

/bin/sh: 1: mysql_config: not found

因为我的烧瓶应用程序运行的地方没有正确配置mysql客户端所以首先我安装了mysql服务器然后安装

sudo apt-get install mysql-server-5.7 -y

然后启动 MySQL

mansoor@LARC-mansur:~/Documents/clients/HR/DevopsSimulator/web$ sudo systemctl start mysql

然后安装flask-mysql包,这次成功了

mansoor@LARC-mansur:~/Documents/clients/HR/DevopsSimulator/web$ sudo pip3 install flask-mysqldb

这是不同的情况,但在这里发布,因为可能世界上其他人面临同样的问题


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅