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

824

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

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

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

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

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

    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

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

zjm1126
источник
1
Смотрите эту ветку: [mysql_config не найден при установке интерфейса Python mysqldb] [1] работал для меня :) [1]: stackoverflow.com/questions/7475223/…
Staccato
Я пользователь MAC OS. Я решаю эту проблему, но этот вопрос stackoverflow.com/questions/50940302/…
PatricioS

Ответы:

1400

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

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

sudo apt-get install libmysqlclient-dev

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

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

sudo apt install default-libmysqlclient-dev
FBO
источник
24
Это все еще создало ошибку для меня. Я использовал apt-get install python-mysqldbвместо этого.
Джонатан Литтке
51
мой 2с опыт: sudo apt-get install libmysqlclient-devработал у меня, sudo apt-get install python-mysqldbне помогло
Anentropic
20
@JonatanLittke Установка глобального вида python-mysqldb идет вразрез с точкой зрения virtualenv IMO.
Fncomp
42
для Мариадб sudo apt-get install libmariadbclient-devсделал свое дело.
Ювилио
11
Если эти решения не работают для вас, возможно, вам все еще нужно установить python-dev:apt-get install python-dev
Anoyz
295

В Mac OS я просто запустил это в терминале, чтобы исправить:

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

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

(проверено в OSX Mountain Lion)

Крис Вилла
источник
6
Если вы используете стек MAMP в Bitnami, используйте export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binЕсли вы используете этот коммерческий стек MAMP , с другой стороны, удалите его и получите битовый, потому что он дерьмовый и не содержит заголовков mysql.
Тимммм
3
Чтобы сделать путь постоянным, добавьте его в /etc/pathsконец - вам нужно будет открыть новое окно терминала, чтобы получить доступ к новому пути.
Рохока
@Timmmm Довольно дорогое решение, так как все мои базы данных находятся на официальной версии: / Есть ли другой способ разобраться в этом?
Volatil3
1
Очень полезно. Если вы используете XAMPP, используйте его какexport PATH=$PATH:/Applications/XAMPP/xamppfiles/bin
Кевин Лондон
10
Это наконец работает, спасибо! также, если mysqlне установлено, используйте, brew install mysqlгде местоположение /usr/local/bin/mysql(или /usr/local/Cellar/mysql/VERSION/bin/если оно не является символической ссылкой).
Азиз Альто
102
apt-get install libmysqlclient-dev python-dev

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

стив-Gregory
источник
2
да, мне не хватило только libmysqlclient-dev, отсутствовал также python-dev.
Андерсон Сантос
На Ubuntu 12.04 (точная) (32-разрядная версия) после обновления на месте с 10.04 (lucid) только это решило эти ошибки. Специально дополнительный "python-dev"!
Лед
Сработало и для меня - python-dev был последним кусочком головоломки. Уже установлен python-mysqldb, так что это определенно не все, что нужно.
Тим С.
Обновление: для Python3 вы должны установить python3-dev.
Цезарь
Мне нужно было сделать это, а также установить, gccчтобы получить успешную установку. Кроме того , это, вероятно , лучше не делать python-dev, но указать конкретную версию , такие как python2.7-dev, python3.6-devи т.д.
Тим Tisdall
89

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

Для Ubuntu:

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

Для CentOS:

$ yum install python-devel mysql-devel
user2886440
источник
Спасибо за чаевые. Я преследовал это все утро.
Пит Мэгсиг
Возможно, стоит добавить python3-dev/python3-devel
Gergely M
36

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

brew install mysql

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

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

Чем в глобальном масштабе или в вашем вене, что вам нравится

pip install MySQL-Python

Примечание: глобально для python3, поскольку Mac может иметь как python2, так и 3

pip3 install MySQL-Python
Заман Афзал
источник
34

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

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

pip install mysql-connector-python

Дополнительную информацию можно найти в блоге анонса бета-версии MySQL Connector / Python 1.0.5 .

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

ndequeker
источник
3
Это единственное, что сработало для меня, когда я разочаровался в mysqldb и пропавшем беспорядке mysql_config. Хорошо работает для моих целей.
wh1tney
@wjoba ты можешь объяснить дальше? Я устанавливаю py-mysql2pgsqlи нахожу ошибку mysql_config вещь. Я использую MAMP. Что делает соединитель mysqk?
Volatil3
1
@ Volatil3 mysql-connector-python отлично зарекомендовал себя как полноценная замена mysql-python для меня. Установка первого через pip работала без проблем и избавилась от ошибки mysql_config, потому что (по словам самого разработчика) mysql-коннектор «чистый Python и не нуждается ни в каком другом программном обеспечении MySQL, следовательно, в C-библиотеках и компиляции». Надеюсь, это поможет. Попробуйте установку, упомянутую в этом решении, и посмотрите, не возникла ли еще ошибка.
wh1tney
На Ubuntu 14/4 я получаю: Не удалось найти какие-либо загрузки, которые удовлетворяют требованию mysql-connector-python
Timo
Эта команда сработала для меня после попытки всего остального.
Часы
27

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

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
источник
1
Это звучит так, как будто у вас нет прав для включаемых файлов, для которых устанавливается двоичный файл Python pip. Сам Python обычно обеспечивает местоположение включения; указание пути вручную, скорее всего, указывает на неправильную версию .
Мартин Питерс
Я должен был сделать sudo pip install MySQL-pythonиз-за ошибки:copying build/lib.linux-x86_64-2.7/_mysql_exceptions.py -> /usr/lib64/python2.7/site-packages error: /usr/lib64/python2.7/site-packages/_mysql_exceptions.py: Permission denied
bennythejudge
18

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

И это помогло.

Эмиль Давтян
источник
1
Я использовал: sudo yum install mysql mysql-devel mysql-common mysql-libs gcc за пределами моего virtualenv. Затем я вернулся в свою виртуальную среду и побежал, pip install mysql-pythonи это сработало.
tandy
1
dnf install mysql-devel gccбыло достаточно для меня, это зависит от всего остального
Йенс Тиммерман
python-develтеперь выдаст ошибку, если вы используете Python 2.7 попробуйте этоpython27-devel
Sizzling Code
8

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

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

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config
Александру Кирила
источник
2
Этот недооцененный ответ полезен в любом случае, когда требуется подключиться к определенному известному сокету базы данных. Это помогло мне подключиться к автономной базе данных MySQL. Большинство решений здесь просто рекомендуют переустановить (или установить второй или третий ... и т. Д.) Клиент msql!
7yl4r
6

Пытаться sudo apt-get build-dep python-mysqldb

KalamHavij
источник
6

OSX Mavericks

Из-за изменений в osx mavericks и инструментах разработки 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
Томас Шварцль
источник
6

Для Linux

это работает для меня

yum install python-devel mysql-devel
пенни чан
источник
5

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

sudo apt-get install libmariadbclient-dev
Динеш Шарма
источник
Как раз то, что мне нужно при использовании Debian 9 Stretch с MariaDB
anhtran
4

Вы должны установить mysqlпервое:

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

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

pip install  mysqlclient
самолет
источник
2

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

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

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

apk add mariadb-dev

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

apk add python2 py2-pip gcc python2-dev musl-dev
Alex
источник
2

Последовательность, которой нужно следовать.

pip install mysqlclient
sudo apt-get install python3-dev libmysqlclient-dev
pip install configparser 
sudo cp /usr/lib/python3.6/configparser.py /usr/lib/python3.6/ConfigParser.py 

Затем попробуйте снова установить MYSQL-python. Это сработало для меня

lakshmankashyap
источник
1

Была аналогичная проблема при попытке установить на 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"

Сохранить. Откройте файл site.cfg и раскомментируйте путь к 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 :-)

Брэд Хердсон
источник
1

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

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

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

Пол Кенджора
источник
1

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

pip install --upgrade pip
Альберт Чен
источник
См. Stackoverflow.com/questions/7475223/… Я не думаю, что ваш ответ поможет
Линус
0

в MacOS Mojave mysql_config находится в / usr / local / bin /, а не в / usr / local / mysql / bin, как указано выше, поэтому нет необходимости добавлять что-либо к пути.

Авидан Эфоди
источник