pip install mysql-python 失败,出现 EnvironmentError: 未找到 mysql_config

2024-12-24 08:55:00
admin
原创
144
摘要:问题描述:这是我得到的错误(mysite)zjm1126@zjm1126-G41MT-S2:~/zjm_test/mysite$ pip install mysql-python Downloading/unpacking mysql-python Downloading MySQL-python-1.2...

问题描述:

这是我得到的错误

(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

我该如何解决这个问题?


解决方案 1:

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

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

sudo apt-get install libmysqlclient-dev

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

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

sudo apt install default-libmysqlclient-dev

解决方案 2:

在 Mac OS 中,我只需在终端中运行此命令即可修复:

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

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

(在 OSX Mountain Lion 中测试)

解决方案 3:

对于上述问题可能有多种答案,以下是一个汇总的解决方案。

对于 Ubuntu:

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

对于 CentOS:

$ yum install python-devel mysql-devel

解决方案 4:

apt-get install libmysqlclient-dev python-dev

似乎很有效。

解决方案 5:

如果你使用的是 MAC,则全局安装

brew install mysql

然后像这样导出路径

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

比全球或在你的 venv 任何你喜欢的

pip install MySQL-Python

注意:对于 python3 来说,Mac 可以同时拥有 python2 和 3

pip3 install MySQL-Python

解决方案 6:

您可以使用 MySQL Connector/Python

通过 PyPip 安装

pip install mysql-connector-python

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

Launchpad 上有一个很好的示例,说明如何使用库添加、编辑或删除数据。

解决方案 7:

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

解决方案 8:

我尝试mysql-python在 Amazon EC2 Linux 实例上安装,并且必须安装这些:

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

这招确实奏效了。

解决方案 9:

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

例如这对我有用:

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

解决方案 10:

对于 Linux

这对我有用

yum install python-devel mysql-devel

解决方案 11:

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

解决方案 12:

OSX Mavericks

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

解决方案 13:

对于 mariadb,请安装lib mariadb client-dev而不是libmysqlclient-dev

sudo apt-get install libmariadbclient-dev

解决方案 14:

我在 Terraform:light 容器中遇到了同样的问题。它基于 Alpine。

你必须使用以下命令安装 mariadb-dev:

apk add mariadb-dev

但这是不够的,因为所有其他依赖项都被忽略了:

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

解决方案 15:

您应该安装mysql第一个:

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

然后你可以安装mysqlclient

pip install  mysqlclient

解决方案 16:

有时错误取决于实际原因。我们遇到过通过 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 恢复到其原始状态。

解决方案 17:

需要遵循的顺序。

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。这对我有用

解决方案 18:

在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

解决方案 19:

在尝试在 OS X Server 10.6.8 上安装时遇到类似问题。以下是我必须执行的操作。使用:

MySQL-python 1.2.4b4(源) MySQL-5.6.19(二进制安装程序) Python 2.7(二进制安装程序) 注意:在虚拟环境中安装...

解压源代码,打开“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

现在清理、构建和制作不会因未找到“mysql_config”错误而失败。希望这可以帮助其他人尝试使用他们的旧 xserves :-)

解决方案 20:

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

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

现在您已在 OSX 上启动并运行。现在您有一个更新的全局 Python。

解决方案 21:

如果你在虚拟环境中安装了 MySQL-python,则应检查 pip 版本,如果版本早于 9.0.1,请更新它

pip install --upgrade pip

解决方案 22:

在我的例子中,我的数据库在容器上运行,而我的 flask 应用程序在另一个容器上运行,当我尝试更新代码时,应用程序出现错误

   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

因为我的 flask 应用程序运行时没有正确配置 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

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

解决方案 23:

写于 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,一切都会好起来。

解决方案 24:

在 MacOS Mojave 上,mysql_config 位于 /usr/local/bin/ 而不是上面指出的 /usr/local/mysql/bin,因此无需在路径中添加任何内容。

相关推荐
  政府信创国产化的10大政策解读一、信创国产化的背景与意义信创国产化,即信息技术应用创新国产化,是当前中国信息技术领域的一个重要发展方向。其核心在于通过自主研发和创新,实现信息技术应用的自主可控,减少对外部技术的依赖,并规避潜在的技术制裁和风险。随着全球信息技术竞争的加剧,以及某些国家对中国在科技领域的打压,信创国产化显...
工程项目管理   1565  
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   1354  
  信创国产芯片作为信息技术创新的核心领域,对于推动国家自主可控生态建设具有至关重要的意义。在全球科技竞争日益激烈的背景下,实现信息技术的自主可控,摆脱对国外技术的依赖,已成为保障国家信息安全和产业可持续发展的关键。国产芯片作为信创产业的基石,其发展水平直接影响着整个信创生态的构建与完善。通过不断提升国产芯片的技术实力、产...
国产信创系统   21  
  信创生态建设旨在实现信息技术领域的自主创新和安全可控,涵盖了从硬件到软件的全产业链。随着数字化转型的加速,信创生态建设的重要性日益凸显,它不仅关乎国家的信息安全,更是推动产业升级和经济高质量发展的关键力量。然而,在推进信创生态建设的过程中,面临着诸多复杂且严峻的挑战,需要深入剖析并寻找切实可行的解决方案。技术创新难题技...
信创操作系统   27  
  信创产业作为国家信息技术创新发展的重要领域,对于保障国家信息安全、推动产业升级具有关键意义。而国产芯片作为信创产业的核心基石,其研发进展备受关注。在信创国产芯片的研发征程中,面临着诸多复杂且艰巨的难点,这些难点犹如一道道关卡,阻碍着国产芯片的快速发展。然而,科研人员和相关企业并未退缩,积极探索并提出了一系列切实可行的解...
国产化替代产品目录   28  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

尊享禅道项目软件收费版功能

无需维护,随时随地协同办公

内置subversion和git源码管理

每天备份,随时转为私有部署

免费试用