Mysql_config не найден при установке интерфейса mysqldb python

Я пытаюсь запустить Python script для запуска на сервере linux, с которым я подключен через ssh. script использует mysqldb. У меня есть все другие компоненты, которые мне нужны, но когда я пытаюсь установить mySQLdb с помощью setuptools, например:,

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 - это интерфейс python для mysql, но он не является mysql. И, видимо, mySQLdb нуждается в команде "mysql_config", поэтому вам нужно сначала установить ее.

Можете ли вы подтвердить, что вы сами или не устанавливали 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

Ответ 2

Я устанавливал python-mysql на Ubuntu 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

И тогда я был счастлив:)

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

В Red Hat мне пришлось делать

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

Затем он работал.

Ответ 4

Ниже я работал на Ubuntu 12.04 LTS:

apt-get install libmysqlclient-dev python-dev

Все, хотя это сработало, я все же продолжал делать следующее:

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

Ответ 5

У меня такая же ошибка при попытке установить 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...

Надеюсь, что это поможет.

Спасибо.

Ответ 6

Я исправил эту проблему следующими шагами:

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

Ответ 7

Команды (mysql too) mPATH могут отсутствовать.

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

Ответ 8

(Специфично для Mac) Я много чего перепробовал, но этот набор команд наконец-то сработал для меня.

  1. brew install mysql # установить mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH # путь обновления и установите папку mysql bin в путь
  5. sudo ln -s/usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib/usr/local/Cellar/lib/libmysqlclient.21.dylib # создать символическую ссылку
  6. pip install mysqlclient # окончательно установить mysql-клиент

Ответ 9

Я исправил его, установив libmysqlclient:

sudo apt-get install libmysqlclient16-dev

Ответ 10

Пакет MySQL-python использует команду mysql_config чтобы узнать о конфигурации mysql на вашем хосте. Ваш хост не имеет команды mysql_config.

Пакет библиотек разработки MySQL (MySQL-devel-xxx) от dev.mysql.com предоставляет эту команду и библиотеки, необходимые для пакета MySQL-python. Пакеты MySQL-devel находятся в разделе сервера загрузки. Имена пакетов библиотеки разработки MySQL начинаются с MySQL-devel и различаются в зависимости от версии MySQL и платформы linux (например, MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm.)

Обратите внимание, что вам не нужно устанавливать сервер MySQL.

Ответ 11

Если вы используете macOS и уже установили [email protected] через brew install:

  1. brew install mysql-connector-c
  2. brew unlink [email protected]
  3. brew link --overwrite --dry-run [email protected] сначала, чтобы увидеть, какие символические ссылки перезаписываются
  4. brew link --overwrite --force [email protected] фактически перезаписать символические ссылки, связанные с mysql, с [email protected]
  5. pip install mysqlclient

Ответ 12

У меня были эти проблемы и я решил, добавив символическую ссылку на mysql_config.

Я установил mysql с homebrew и увидел это на выходе.

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

Ответ 13

На моей машине Fedora 23 мне пришлось запустить следующее:

sudo dnf install mysql-devel

Ответ 15

В Centos 7 это работает для меня:

yum install mariadb-devel
pip install mysqlclient

Ответ 16

Я думаю, следующие строки могут быть выполнены на терминале

 sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/

Этот каталог mysql_config предназначен для zend-сервера на MacOSx. Вы можете сделать это для linux, как следующие строки

sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/

Это каталог linux mysql по умолчанию.

Ответ 17

Вам нужно установить пакет python-dev:

sudo apt-get install python-dev

Ответ 18

У меня такая же проблема. Я решил это, следуя этому руководству, чтобы установить Python с python3-dev на Ubuntu 16.04:

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

Ответ 19

sudo apt-get install python-mysqldb

Python 2.5? Похоже, что вы используете очень старую версию Ubuntu Server (Hardy 8.04?) - пожалуйста, подтвердите, какую версию Linux использует сервер.

поиск python-mysql в базе данных пакетов ubuntu

Дополнительная информация:

Из README mysql-python -

Red Hat 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

Ubuntu ......

То же, что и в Debian.

Сноска: если вы действительно используете дистрибутив сервера старше Ubuntu 10.04, то вы не пользуетесь официальной поддержкой и должны обновляться раньше, чем позже.

Ответ 20

Этот метод предназначен только для тех, кто знает, что Mysql установлен, но mysql_config не может быть найден. Это происходит, если установка python не может найти mysql_config в вашем системном пути, что в основном происходит, если вы выполнили установку через .dmg Mac Package или установили на какой-то пользовательский путь. Самый простой и документированный способ MySqlDB - изменить site.cfg. Найдите mysql_config, который, вероятно, находится в /usr/local/mysql/bin/ и измените переменную, а именно mysql_config, как показано ниже, и запустите установку еще раз. Не забудьте отменить комментарий, удалив "#"

Изменить ниже строки

"# mysql_config =/usr/local/bin/mysql_config"

к

"mysql_config =/usr/local/mysql/bin/mysql_config"

в зависимости от пути в вашей системе.

Кстати, я использовал python install после изменения site.cfg

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

Ответ 21

Я столкнулся с той же проблемой, просто добавил путь, в котором * mysql_config * проживал переменную окружения PATH, и это сработало для меня.

Ответ 22

sudo apt-get build-dep python-mysqldb установит все зависимости для сборки пакета из PIP/easy_install

Ответ 23

Поскольку фактическая ошибка

gcc ... -I/usr/include/python2.7 ...

_mysql.c:29:20: error: Python.h: No such file or directory

и если вы не можете установить пакеты python-dev или python-devel, вы можете загрузить архив с необходимой версией источников python из http://hg.python.org/ и разместить файлы заголовков в правильной папке для включения

Ответ 24

Просто введите:

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

Это решит эти проблемы.

Ответ 25

Пока что для всех решений (Linux) требуются права sudo или root. Вот решение, если у вас нет root-прав и без sudo. (нет sudo apt install...):

  1. Загрузите файл.deb из libmysqlclient-dev, например, из этого зеркала.
  2. Перейдите к загруженному файлу и запустите dpkg -x libmysqlclient-dev_<version tag>.deb. Это распакует папку с именем usr.
  3. Симлинк ./usr/bin/mysql_config куда-то, что находится в вашем $PATH:

    ln -s 'pwd' /usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  4. Теперь он должен быть в состоянии найти mysql_config

Проверено на Ubuntu 18.04.

Ответ 26

Для macOS Mojave требовалась дополнительная настройка, чтобы компиляторы могли найти openssl, вам может потребоваться установить:

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"

Ответ 27

Шаг 1: -Установите Python3 & Python3-dev Both

sudo apt-get install python3 python3-dev

Step2: - Установить Python & Mysql Connector

sudo apt-get install libmysqlclient-dev

step3: - Установить клиент Python MySQL

sudo apt-get install mysqlclient

Это решит вашу проблему

Ответ 28

В CentOS 7 необходимо выполнить следующие действия:

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

#step2:
sudo yum install mysql-devel

Ответ 29

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

NOtice вы также должны установить python-dev, пакеты, такие как MySQL-python, скомпилированы из источника. Пакеты pythonx.x-dev содержат необходимые файлы заголовков для связывания с python. Почему установка numpy требует python-dev в Kubuntu 12.04