mysql_config не найден при установке интерфейса mysqldb для Python
Я пытаюсь запустить скрипт на 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?
5 ответ(ов)
mySQLdb — это интерфейс Python для MySQL, но, как видно, это не сама MySQL. Действительно, для работы mySQLdb необходима утилита mysql_config
, поэтому сначала вам нужно ее установить.
Можете подтвердить, установлена ли у вас сама MySQL, выполнив команду mysql
в терминале? Если MySQL установлена, вы должны получить ответ, отличный от "mysql: command not found".
Какую дистрибуцию Linux вы используете? MySQL предустановлена для большинства дистрибутивов. Например, для 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
Ссылка:
https://github.com/JudgeGirl/Judge-sender/issues/4#issuecomment-186542797
При установке python-mysql
на Ubuntu 12.04 с помощью команды
pip install mysql-python
я столкнулся с проблемой:
Not Found "mysql_config"
Эта проблема решилась у меня после выполнения команды:
sudo apt-get install libmysqlclient-dev
Затем возникла новая ошибка:
...
_mysql.c:29:20: ошибка фатальная: Python.h: Нет такого файла или директории
компиляция завершена.
error: command 'gcc' failed with exit status 1
Я решил её, установив пакет:
sudo apt-get install python-dev
(Если вы используете Python 3, установите python3-dev
вместо этого.)
После этого все сработало отлично 😃
pip install mysql-python
Установка собранных пакетов: mysql-python
Запуск setup.py install для mysql-python
создание расширения '_mysql'
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
В файле, включенном из _mysql.c:44:0:
/usr/include/mysql/my_config.h:422:0: предупреждение: переопределено "HAVE_WCSCOLL" [включено по умолчанию]
/usr/include/python2.7/pyconfig.h:890:0: примечание: это место предшествующего определения
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
Успешно установлено mysql-python
Очистка...
Надеюсь, это поможет и вам!
На Red Hat мне нужно было выполнить следующие команды:
sudo yum install mysql-devel gcc gcc-devel python-devel
sudo easy_install mysql-python
После этого всё заработало.
Для установки необходимых библиотек в системе с Python 3.5.2 и любой будущей версией вы можете использовать следующую команду:
sudo apt-get install libmysqlclient-dev python3-dev
Обратите внимание, что вместо python-dev
(который предназначен для Python 2) нужно использовать python3-dev
, так как вы работаете с Python 3. Эта команда установит библиотеку для работы с MySQL и заголовочные файлы для разработки на Python 3, что позволит вам компилировать и устанавливать необходимые пакеты, такие как mysqlclient
.
После установки библиотек, вы можете установить mysqlclient
с помощью pip:
pip install mysqlclient
Убедитесь, что у вас установлен pip для Python 3. Если pip не установлен, вы можете установить его с помощью команды:
sudo apt-get install python3-pip
Таким образом, у вас будет всё необходимое для работы с MySQL в Python.
Это сработало для меня на Ubuntu 12.04 LTS:
apt-get install libmysqlclient-dev python-dev
Хотя это решение помогло, я решил дополнительно выполнить следующее:
export PATH=$PATH:/usr/local/mysql/bin/
Как изменить цвет вывода echo в Linux
open() в Python не создает файл, если он не существует
Ошибка EnvironmentError: не найден mysql_config при установке mysql-python с помощью pip
Как удалить пакеты, установленные с помощью easy_install в Python?
Использование @property против геттеров и сеттеров