pip install mysql-python завершается с ошибкой EnvironmentError: mysql_config не найден

Это ошибка, которую я получаю

(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 "", line 14, in 
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in 
        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 "", line 14, in 

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in 

    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 "", line 14, in 
      File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in 
        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 "", line 14, in 

  File "/home/zjm1126/zjm_test/mysite/build/mysql-python/setup.py", line 15, in 

    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

Что я могу сделать, чтобы решить эту проблему?

вопрос задан 3.03.2011
zjm1126
12165 репутация

18 ответов


  • 1161 рейтинг

    Кажется, что mysql_config отсутствует в вашей системе или установщик не может его найти. Убедитесь, что mysql_config действительно установлен.

    Например, в Debian / Ubuntu вы должны установить пакет:

    sudo apt-get install libmysqlclient-dev
    

    Может быть, mysql_config не на вашем пути, это будет тот случай, когда вы сами скомпилируете MySQL Suite.

    Обновление: Для последних версий Debian / Ubuntu (по состоянию на 2018 г.) это

    sudo apt install default-libmysqlclient-dev
    
    ответ дан Fbo, с репутацией 11835, 3.03.2011
  • 263 рейтинг

    Запустив Mac OSX Mountain Lion, я просто запустил это в терминале, чтобы исправить:

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

    Это самое быстрое исправление, которое я нашел - оно добавляет его к пути, но я думаю, что вам лучше добавить его навсегда (т.е. добавить его в /etc/paths), если вы планируете установить MySQL-python в другой среде.

    ответ дан Chris Villa, с репутацией 3196, 27.09.2012
  • 92 рейтинг
    apt-get install libmysqlclient-dev python-dev
    

    Казалось бы сделать трюк.

    ответ дан steve-gregory, с репутацией 4726, 4.12.2012
  • 72 рейтинг

    Там могут быть различные ответы на вышеуказанную проблему, ниже агрегированное решение.

    Для Ubuntu:

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

    Для CentOS:

    $ yum install python-devel mysql-devel
    
    ответ дан user2886440, с репутацией 721, 25.02.2014
  • 20 рейтинг

    Для сентос пользователей:

    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

    ответ дан lancerex, с репутацией 761, 4.05.2016
  • 20 рейтинг

    Вы можете использовать MySQL, Connector / Python

    Установка через PyPip

    pip install mysql-connector-python
    

    Дополнительную информацию можно найти на MySQL Connector / Python 1. 0. 5 бета-объявления блог.

    На панели запуска есть хороший пример того, как добавлять, редактировать или удалять данные с помощью библиотеки.

    ответ дан Voles, с репутацией 3857, 11.10.2012
  • 17 рейтинг

    Если вы находитесь на MAC Установите это глобально

    brew install mysql
    

    затем экспортируйте путь как этот

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

    , наконец, во всем мире или в вашем венв

    pip install MySQL-Python
    
    ответ дан Zaman Afzal, с репутацией 664, 14.09.2017
  • 16 рейтинг

    Я пытался установить 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
    

    И это сработало.

    ответ дан Emil Davtyan, с репутацией 10031, 25.07.2013
  • 5 рейтинг

    Для тех, кто использует MariaDB вместо MySQL, решение состоит в том, чтобы установить пакет libmariadbclient-dev и создать символическую ссылку на файл конфигурации с правильным именем.

    Например, это сработало для меня:

    ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
    
    ответ дан Chirila Alexandru, с репутацией 1137, 19.06.2015
  • 5 рейтинг

    OSX Mavericks

    Из-за изменений в osx mavericks & amp; Инструменты разработки 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
    
    ответ дан Thomas, с репутацией 5666, 19.03.2014
  • 4 рейтинг

    Попробуйте sudo apt-get build-dep python-mysqldb

    ответ дан KalamHavij, с репутацией 81, 24.06.2012
  • 2 рейтинг

    для mariadb установить lib mariadb client-dev вместо libmysqlclient-dev

    sudo apt-get install libmariadbclient-dev
    
    ответ дан Dinesh Sharma, с репутацией 378, 14.08.2017
  • 1 рейтинг

    иногда ошибка зависит от фактической причины. у нас был случай, когда mysql-python был установлен через пакет debian python-mysqldb.

    разработчик, который не знал об этом, случайно запустил pip uninstall mysql-python, а затем не смог восстановиться с pip install mysql-python, выдавшим вышеуказанную ошибку.

    pip uninstall mysql-python уничтожил содержимое пакета debian, и, конечно, pip install mysql-python не удалось, потому что пакет debian не нуждался в файлах dev.

    правильное решение в этом случае было apt-get install --reinstall python-mysqldb, что вернул mysql-python в его первоначальное состояние.

    ответ дан eMBee, с репутацией 466, 29.06.2017
  • 1 рейтинг

    Сначала вы должны установить mysql:

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

    Затем вы можете установить mysqlclient:

    pip install  mysqlclient
    
    ответ дан aircraft, с репутацией 4771, 29.12.2017
  • 0 рейтинг

    Ваш путь sudo не знает о вашем локальном пути. , , перейдите в режим суперпользователя, добавьте путь и установите его оттуда.

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

    И вы работаете на OSX. Теперь у вас есть обновленный глобальный питон.

    ответ дан Paul Kenjora, с репутацией 884, 17.05.2017
  • 0 рейтинг

    Была похожая проблема при попытке установить на OS X Server 10. 6. 8. Вот что я должен был сделать. Использование:

    MySQL-python 1. 2. 4b4 (источник) MySQL-5. 6. 19 (бинарный установщик) Python 2. 7 (бинарный установщик) ПРИМЕЧАНИЕ. Установка в virtualenv. , ,

    Разархивируйте исходный код, откройте 'distribte_setup. py 'и отредактируйте DEFAULT_VERSION, чтобы использовать последнюю версию инструментов распространения, например:

    DEFAULT_VERSION = "0.6.49"
    

    Сохранить. Открыть сайт. cfg 'file и раскомментируйте путь к 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» not found. Надеюсь, что это поможет кому-то еще, пытаясь использовать свои старые xserve :-)

    ответ дан Brad Herdson, с репутацией 1, 5.07.2014
  • 0 рейтинг

    если вы устанавливаете MySQL-python в вашу виртуальную среду, вам следует проверить версию pip, если версия старше 9. 0. 1, пожалуйста, обновите его

    pip install --upgrade pip
    
    ответ дан Albert Chen, с репутацией 21, 21.02.2018
  • 0 рейтинг

    У меня была такая же проблема в Terraform: легкий контейнер. Он основан на альпийском.

    Там вы должны установить mariadb-dev с:

    apk add mariadb-dev
    

    Но этого недостаточно, потому что также пропущены все другие зависимости:

    apk add python2 py2-pip gcc python2-dev musl-dev
    
    ответ дан Alex, с репутацией 558, 11.04.2018