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) Я много чего перепробовал, но этот набор команд наконец-то сработал для меня.
-
brew install mysql
# установить mysql -
brew unlink mysql
-
brew install mysql-connector-c
-
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
# путь обновления и установите папку mysql bin в путь -
sudo ln -s/usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib/usr/local/Cellar/lib/libmysqlclient.21.dylib
# создать символическую ссылку -
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:
brew install mysql-connector-c
brew unlink [email protected]
brew link --overwrite --dry-run [email protected]
сначала, чтобы увидеть, какие символические ссылки перезаписываются
brew link --overwrite --force [email protected]
фактически перезаписать символические ссылки, связанные с mysql, с [email protected]
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
Ответ 14
Для Alpine Linux:
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDB является заменой MySQL и стала новым стандартом для Alpine 3.2. См. Https://bugs.alpinelinux.org/issues/4264.
Ответ 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...
):
- Загрузите файл.deb из libmysqlclient-dev, например, из этого зеркала.
- Перейдите к загруженному файлу и запустите
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.
Ответ 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