首页 文章

安装mysqldb python接口时找不到mysql_config

提问于
浏览
355

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

24 回答

  • 2

    (特定于mac)我已经尝试了很多东西,但这些命令最终对我有用 .

    • brew install mysql #install mysql

    • brew unlink mysql

    • brew install mysql-connector-c

    • export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH #upcate 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 #create symlink

    • pip install mysqlclient #最后安装mysql-client

  • 27

    在我的Fedora 23机器上,我必须执行以下操作:

    sudo dnf install mysql-devel
    
  • 5

    对于Alpine Linux:

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

    MariaDB是drop-in replacement for MySQL,并成为Alpine 3.2的新标准 . 见https://bugs.alpinelinux.org/issues/4264

  • 1

    我想,以下行可以在终端上执行

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

  • 17

    如果通过添加符号链接到 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/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config
    
  • 25

    你需要安装python-dev包:

    sudo apt-get install python-dev
    
  • -2

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

    你可以通过从shell运行“mysql”来确认你是否安装了mysql本身?这应该给你一个响应,而不是“mysql:command 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
    
  • 3

    我正在使用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...
    
  • 2

    以下在Ubuntu 12.04 LTS上为我工作:

    apt-get install libmysqlclient-dev python-dev
    

    尽管它起作用,我仍然继续做下面的事情:

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

    在Red Hat我必须这样做

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

    然后它奏效了 .

  • 1

    我在尝试安装 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...
    

    希望这可以帮助 .

    谢谢 .

  • 1

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

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

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

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

  • 16

    我通过安装libmysqlclient来修复它:

    sudo apt-get install libmysqlclient16-dev
    
  • 158

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

  • 7

    此方法仅适用于那些知道安装了Mysql但仍然可以在系统路径中找到mysql_config的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 install

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

  • 512

    在centos 7中,这对我有用:

    yum install mariadb-devel
    pip install mysqlclient
    
  • 7

    sudo apt-get install python-mysqldb

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

    python-mysql search on ubuntu package database

    一些额外的信息:

    来自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-mysqldbhttp://packages.debian.org/python-mysqldb

    Ubuntu ......

    与Debian相同 .

    脚注:如果您确实使用的是比Ubuntu 10.04更早的服务器分发版,那么您将失去官方支持,并且应该尽快升级 .

  • 8

    我遇到了同样的问题,只是添加了* mysql_config *所在的路径到环境变量PATH,它对我有用 .

  • 4

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

  • 1

    因为实际错误是

    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源的存档,并将头文件放在适当的文件夹中

  • 5

    只需输入:

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

    这将解决这个问题 .

  • 1

    到目前为止,所有解决方案(Linux)都需要 sudo 或root权限才能安装 . 如果您没有root权限且没有 sudo ,这是一个解决方案 . (没有 sudo apt install ... ):

    • 下载libmysqlclient-dev的.deb文件,例如来自this mirror

    • 导航到下载的文件并运行 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上测试过 .

  • 1

    sudo apt-get install libmysqlclient-dev sudo apt-get install python-dev sudo apt-get install MySQL-python

    你应该安装python-dev,像MySQL-python这样的包是从源代码编译的 . pythonx.x-dev软件包包含用于链接python的必要头文件 . Why does installing numpy require python-dev in Kubuntu 12.04

相关问题