it-swarm.com.ru

mysql_config не найден при установке Python-интерфейса mysqldb

Я пытаюсь заставить скрипт Python работать на сервере linux, к которому я подключен через ssh. Скрипт использует 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? 

369
user904542

mySQLdb - это интерфейс Python для mysql, но это не сам MySQL. И, очевидно, mySQLdb нужна команда «mysql_config», поэтому вам нужно сначала установить ее.

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

Я устанавливал 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...
164
xtornasol512

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

apt-get install libmysqlclient-dev python-dev

Несмотря на то, что это сработало, я все же сделал следующее:

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

На Red Hat я должен был сделать

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

Тогда это сработало.

27
Elliott

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

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

Благодарю.

23
Mayank R Jain

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

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev
Sudo python setup.py install
17
zhaozhi

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

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

16
samwize

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

Sudo apt-get install libmysqlclient16-dev
8
thoslin

Пакет 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.

7
John Livingston

(Специфично для 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 # обновите путь и установите папку bin mysql в путь
  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-клиент
7
Pulkit Pahwa

Для Alpine Linux:

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

MariaDB является заменой для MySQL и стала новым стандартом в Alpine 3.2. Смотрите https://bugs.alpinelinux.org/issues/4264

5
aboutaaron

На моей машине Fedora 23 мне нужно было выполнить следующее:

Sudo dnf install mysql-devel
5
Raptor

Я имел эту проблему и решил, если, добавив символическую ссылку на 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
4
Schechter

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

 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. 

4
hkulekci

Если вы используете 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
3
rilut

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

Sudo apt-get install python-dev
3
ebarch

Sudo apt-get установить 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, то у вас нет официальной поддержки, и вы должны обновить его раньше, чем позже.

2
Gary

У меня такая же проблема. Я решил это, следуя этому руководству чтобы установить 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
2
Little Brain

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

yum install mariadb-devel
pip install mysqlclient
2
Rajiv Sharma

Этот метод предназначен только для тех, кто знает, что 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 после изменения site.cfg

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

2
Ahsan.Amin

Как фактическая ошибка

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/ и поместить файлы заголовков в соответствующую папку для включения

1
Oleg Neumyvakin

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

1
Thomas Grainger

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

1
flyer

Пока что все решения (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.

1
RunOrVeith

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

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

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

1
Luciano D. Mota

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

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