Mac OS X - EnvironmentError: mysql_config не найден

Во-первых, да, я уже видел это:

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

Эта проблема

Я пытаюсь использовать Django в проекте Google App Engine. Однако я не смог начать работу, так как сервер не запускается должным образом из-за:

ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Я провел некоторое исследование, и все это указывало на необходимость установки Mysql-python, так как, очевидно, его нет в моей системе. Я на самом деле попытался удалить его и получил это:

Cannot uninstall requirement mysql-python, not installed

Всякий раз, когда я действительно пытаюсь установить через:

sudo pip install MySQL-python

Я получаю сообщение об ошибке:

raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

Я уже пытался запустить:

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

но это, похоже, не помогло, так как я снова запустил команду установки, но она все равно не удалась.

Есть идеи?

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

Ответ 1

Хорошо, во-первых, позвольте мне проверить, нахожусь ли я на той же странице, что и вы:

  • Вы установили Python
  • Вы сделали brew install mysql
  • Вы export PATH=$PATH: /usr/local/mysql/bin
  • И, наконец, вы pip install MySQL-Python (или pip3 install mysqlclient при использовании python 3)

Если вы выполнили все эти шаги в одном и том же порядке и все еще получили ошибку, прочитайте до конца, если, однако, вы не выполнили эти точные шаги, попробуйте выполнить их с самого начала.

Итак, вы выполнили все шаги и все еще получаете ошибку, ну, есть несколько вещей, которые вы можете попробовать:

  1. Попробуйте запустить which mysql_config из bash. Это, вероятно, не будет найдено. Вот почему сборка тоже не находит. Попробуйте запустить locate mysql_config и посмотрите, вернется ли что-нибудь. Путь к этому двоичному файлу должен быть либо в переменной окружения оболочки $ PATH, либо в явном виде в файле setup.py для модуля, предполагая, что он ищет какое-то определенное место для этого файла.

  2. Вместо использования MySQL-Python, попробуйте использовать "mysql-connector-python", его можно установить с помощью pip install mysql-connector-python. Более подробную информацию об этом можно найти здесь и здесь.

  3. Вручную найдите местоположение "mysql/bin", "mysql_config" и "MySQL-Python" и добавьте все это в переменную среды $ PATH.

  4. Если все вышеперечисленные шаги не пройдены, вы можете попробовать установить "mysql" с помощью MacPorts, и в этом случае файл "mysql_config" будет фактически называться "mysql_config5", и в этом случае вам придется сделать это после установки: export PATH=$PATH: /opt/local/lib/mysql5/bin. Вы можете найти более подробную информацию здесь.

Примечание 1: я видел, как некоторые люди говорили, что установка python-dev и libmysqlclient-dev также помогла, однако я не знаю, доступны ли эти пакеты в Mac OS.

Примечание 2: Также обязательно попробуйте запустить команды от имени пользователя root.

Я получил свои ответы (кроме моего мозга) из этих мест (возможно, вы могли бы взглянуть на них, чтобы посмотреть, поможет ли это): 1, 2, 3, 4.

Я надеялся, что помог, и был бы рад узнать, сработало ли это или нет. Удачи.

Ответ 2

Я устранял эту проблему навсегда - 3 часа 17 минут. Что меня особенно раздражало, так это то, что у меня уже был установлен sql в моей системе из-за предыдущей работы универа, но pip/pip3 не распознал его. Эти темы выше и многие другие, которые я искал в интернете, помогли осветить проблему, но на самом деле не решили проблемы.

ОТВЕТ

Пип ищет бинарные файлы mysql в каталоге Homebrew, который расположен по отношению к Macintosh HD @

/usr/local/Cellar/

поэтому я обнаружил, что для этого необходимо внести несколько изменений

Шаг 1. Загрузите MySql, если это еще не сделано. https://dev.mysql.com/downloads/

Шаг 2. Найдите его относительно Macintosh HD и cd

/usr/local/mysql/bin

Шаг 3. После открытия терминала и использования любого текстового редактора - я сам неовим, поэтому я набрал (не входит автоматически с Mac... другая история на другой день)

nvim mysql_config

Шаг 4: Вы увидите примерно в строке 112

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

Изменить на

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

* вы заметите, что этот файл имеет доступ только для чтения, поэтому, если вы используете vim или neovim

:w !sudo tee %

Шаг 5. Перейдите в домашний каталог и отредактируйте файл .bash_profile

cd ~

Тогда

nvim .bash_profile

и добавить

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

в файл, затем сохраните

Шаг 6: относительно Macintosh HD найдите пути и добавьте к нему

cd /private/etc/

тогда

nvim paths

и добавить

/usr/local/mysql/bin

* вы снова заметите, что этот файл имеет доступ только для чтения, поэтому, если вы используете vim или neovim

:w !sudo tee % 

затем

cd ~

затем обновите терминал с вашими изменениями, запустив

source .bash_profile

Наконец

pip3 install mysqlclient

И Виола. Запомни это.

Ответ 3

Также это происходит, когда я устанавливал mysqlclient,

$ pip install mysqlclient

Как пользователь 3429036 сказал,

$ brew install mysql

Ответ 4

Если вы не хотите устанавливать полный mysql, мы можем это исправить, просто установив mysqlclient brew install mysqlclient После завершения cmd он попросит добавить brew install mysqlclient строку в ~/.bash_profile:

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

Закройте терминал и запустите новый терминал и продолжите pip install mysqlclient

Ответ 5

Этот ответ предназначен для пользователей MacOS, которые установили не из brew, а из официального .dmg/.pkg. Этот установщик не может отредактировать ваш PATH, из-за чего что-то выходит из коробки:

  1. Все команды MySQL, такие как mysql, mysqladmin, mysql_config и т.д., Не могут быть найдены, и в результате:
  2. "Панель настроек MySQL" не отображается в Системных настройках, а
  3. Вы не можете установить любой API, который взаимодействует с MySQL, включая mysqlclient

Что вам нужно сделать, это добавить папку MySQL bin (обычно /usr/local/mysql/bin в ваш PATH, добавив эту строку в ваш файл ~/.bash_profile:

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

Затем вам следует перезагрузить ~/.bash_profile, чтобы изменения вступили в силу в текущем сеансе терминала:

source ~/.bash_profile

Однако перед установкой mysqlclient необходимо принять лицензию XcodeBuild:

sudo xcodebuild -license

Следуйте их указаниям, чтобы подписать свою семью, после чего вы сможете установить mysqlclient без проблем:

pip install mysqlclient

После установки вы должны сделать еще одну вещь, чтобы исправить ошибку времени выполнения, которая поставляется с MySQL (Динамическая библиотека libmysqlclient.dylib не найдена), добавив эту строку в путь к динамическим библиотекам вашей системы:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH

Ответ 6

Установить brew или apt-get тоже непросто для меня, поэтому я загрузил mysql через: https://dev.mysql.com/downloads/connector/python/, установил его. Поэтому я могу найти mysql_config int this directory:/usr/local/mysql/bin

следующий шаг:

  • export PATH = $PATH:/usr/local/mysql/bin
  • pip install MySQL-python == 1.2.5

Ответ 7

Ошибка:

$ pip install MySQL-python
sh: 1: mysql_config: not found

Установка libmysqlclient-dev была здесь:

$ sudo apt-get install libmysqlclient-dev
$ uname -a
Linux debian 3.2.0-4-amd64 #1 SMP Debian 3.2.73-2+deb7u1 x86_64 GNU/Linux