安装mysqldb时找不到mysql_config python接口

2024-09-30 14:02:00
admin
原创
169
摘要:问题描述:我正在尝试让 Python 脚本在通过 ssh 连接的 Linux 服务器上运行。该脚本使用 mysqldb。我拥有所需的所有其他组件,但是当我尝试通过 setuptools 安装 mySQLdb 时,如下所示:python setup.py install 我收到与该命令相关的以下错误报告mysq...

问题描述:

我正在尝试让 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:

mySQLdb 是 mysql 的 python 接口,但它不是 mysql 本身。而且 mySQLdb 显然需要命令“mysql_config”,因此您需要先安装该命令。

您能否通过从 shell 运行“mysql”来确认您是否安装了 mysql 本身?这应该会给您一个除了“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

解决方案 2:

我在python-mysqlUbuntu 12.04 上使用

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...

解决方案 3:

(特定于 Mac OS X)

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

  1. 安装mysql

brew install mysql
  1. brew unlink mysql

  2. brew install mysql-connector-c

  3. 将 mysql bin 文件夹添加到 PATH

export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
  1. mkdir /usr/local/Cellar/lib/

  2. 创建符号链接

sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
  1. brew reinstall openssl来源

  2. 最后,安装mysql-client

LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl/lib/ pip install mysqlclient

更新:如果这不起作用,@vinyll 建议在brew link mysql步骤 8 之前运行。

解决方案 4:

在 Red Hat 上我必须这样做

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

然后它就起作用了。

解决方案 5:

在 Python 3.5.2 及以后版本上

sudo apt-get install libmysqlclient-dev python-dev

解决方案 6:

以下内容在 Ubuntu 12.04 LTS 上对我有用:

apt-get install libmysqlclient-dev python-dev

尽管它有效,但我仍然继续执行以下操作:

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

解决方案 7:

我尝试安装时遇到同样的错误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...

希望这有帮助。

谢谢。

解决方案 8:

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

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

解决方案 9:

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

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

解决方案 10:

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

这将解决你的问题

解决方案 11:

软件包 libmysqlclient-dev 已被弃用,因此请使用以下命令来修复它。

软件包 libmysqlclient-dev 不可用,但另一个软件包引用了它。这可能意味着该软件包缺失、已被淘汰或只能从其他来源获得

sudo apt-get install default-libmysqlclient-dev

解决方案 12:

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

尝试一下

pip install mysql-connector-python

进而

import mysql.connector

mydb = mysql.connector.connect(
          host="",
          user="",
          passwd="",
          database=""
          )      
cursor = mydb.cursor( buffered=True)
cursor.execute('show tables;')
cursor.execute('insert into test values (null, "a",10)')
mydb.commit()
mydb.disconnect()

运行代码片段隐藏结果展开片段

解决方案 13:

如果你使用的是 macOS 并且已经通过 brew install 安装了mysql@5.7 :

  1. brew install mysql-connector-c

  2. brew unlink mysql@5.7

  3. brew link --overwrite --dry-run mysql@5.7首先,看看哪些符号链接被覆盖了

  4. brew link --overwrite --force mysql@5.7用mysql@5.7实际覆盖与 mysql 相关的符号链接

  5. pip install mysqlclient

解决方案 14:

我通过安装 libmysqlclient 修复了这个问题:

sudo apt-get install libmysqlclient16-dev

解决方案 15:

在 CentOS 7 中,这对我来说有效:

yum install mariadb-devel
pip install mysqlclient

解决方案 16:

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 服务器。

解决方案 17:

对于 Alpine Linux:

$ apk add mariadb-dev mariadb-client mariadb-libs

MariaDB 是MySQL 的替代品,从 Alpine 3.2 开始成为新标准。请参阅<https://bugs.alpinelinux.org/issues/4264>

解决方案 18:

在我的 Fedora 23 机器上我必须运行以下命令:

sudo dnf install mysql-devel

解决方案 19:

在 CentOS 7 中,需要做以下几件事:

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

#step2:
sudo yum install mysql-devel

或者

sudo yum install mysql-community-devel

解决方案 20:

另外,我遇​​到了同样的问题
在此处输入图片描述
,我通过以下步骤解决了这个问题:首先,我运行这个命令

sudo apt-get install libmysqlclient-dev

然后我安装

pip install mysqlclient==2.1.0

这对我有用

解决方案 21:

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

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

解决方案 22:

我遇到了这个问题并通过添加符号链接解决了mysql_config

我已经使用 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/&lt;&lt; VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config

解决方案 23:

我遇到了同样的问题。我按照本教程在 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

解决方案 24:

您需要安装 python-dev 包:

sudo apt-get install python-dev

解决方案 25:

sudo apt-get 安装 python-mysqldb

Python 2.5?听起来你正在使用非常老版本的 Ubuntu Server(Hardy 8.04?)——请确认服务器使用的是哪个 Linux 版本。

python-mysql 在 ubuntu 软件包数据库中搜索

一些附加信息:

来自 mysql-python 的 README -

红帽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

乌班图......

与 Debian 相同。

脚注:如果您确实正在使用早于 Ubuntu 10.04 的服务器发行版,那么您将不再获得官方支持,并且应该尽早升级。

解决方案 26:

此方法仅适用于那些知道已安装 Mysql 但仍然找不到 mysql_config 的人。如果 python install 无法在系统路径中找到 mysql_config,就会发生这种情况,这种情况大多发生在您通过 .dmg Mac 包完成安装或安装在某个自定义路径的情况下。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 安装

解决方案 27:

到目前为止,所有解决方案(Linux)都需要sudo或 root 权限才能安装。如果您没有 root 权限且没有 ,则可以使用以下解决方案sudo。(没有sudo apt install ...):

  1. 下载 libmysqlclient-dev 的 .deb 文件,例如从此镜像

  2. 导航到下载的文件并运行dpkg -x libmysqlclient-dev_&lt;version tag>.deb .这将提取一个名为的文件夹usr

  3. ./usr/bin/mysql_config指向您网站上某处的符号链接$PATH

ln -s pwd /usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  1. 现在应该能够找到mysql_config

在 Ubuntu 18.04 上测试。

解决方案 28:

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

export LDFLAGS=&quot;-L/usr/local/opt/openssl/lib&quot;
export CPPFLAGS=&quot;-I/usr/local/opt/openssl/include&quot;

解决方案 29:

在 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”)。

解决方案 30:

我遇到了同样的问题,只需将 mysql_config 所在的路径添加到环境变量 PATH 中,它就起作用了。

相关推荐
  为什么项目管理通常仍然耗时且低效?您是否还在反复更新电子表格、淹没在便利贴中并参加每周更新会议?这确实是耗费时间和精力。借助软件工具的帮助,您可以一目了然地全面了解您的项目。如今,国内外有足够多优秀的项目管理软件可以帮助您掌控每个项目。什么是项目管理软件?项目管理软件是广泛行业用于项目规划、资源分配和调度的软件。它使项...
项目管理软件   601  
  华为IPD与传统研发模式的8大差异在快速变化的商业环境中,产品研发模式的选择直接决定了企业的市场响应速度和竞争力。华为作为全球领先的通信技术解决方案供应商,其成功在很大程度上得益于对产品研发模式的持续创新。华为引入并深度定制的集成产品开发(IPD)体系,相较于传统的研发模式,展现出了显著的差异和优势。本文将详细探讨华为...
IPD流程是谁发明的   7  
  如何通过IPD流程缩短产品上市时间?在快速变化的市场环境中,产品上市时间成为企业竞争力的关键因素之一。集成产品开发(IPD, Integrated Product Development)作为一种先进的产品研发管理方法,通过其结构化的流程设计和跨部门协作机制,显著缩短了产品上市时间,提高了市场响应速度。本文将深入探讨如...
华为IPD流程   9  
  在项目管理领域,IPD(Integrated Product Development,集成产品开发)流程图是连接创意、设计与市场成功的桥梁。它不仅是一个视觉工具,更是一种战略思维方式的体现,帮助团队高效协同,确保产品按时、按质、按量推向市场。尽管IPD流程图可能初看之下显得错综复杂,但只需掌握几个关键点,你便能轻松驾驭...
IPD开发流程管理   8  
  在项目管理领域,集成产品开发(IPD)流程被视为提升产品上市速度、增强团队协作与创新能力的重要工具。然而,尽管IPD流程拥有诸多优势,其实施过程中仍可能遭遇多种挑战,导致项目失败。本文旨在深入探讨八个常见的IPD流程失败原因,并提出相应的解决方法,以帮助项目管理者规避风险,确保项目成功。缺乏明确的项目目标与战略对齐IP...
IPD流程图   8  
热门文章
项目管理软件有哪些?
云禅道AD
禅道项目管理软件

云端的项目管理软件

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

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

内置subversion和git源码管理

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

免费试用