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)
Если вы выполнили все эти шаги в одном и том же порядке и все еще получили ошибку, прочитайте до конца, если, однако, вы не выполнили эти точные шаги, попробуйте выполнить их с самого начала.
Итак, вы выполнили все шаги и все еще получаете ошибку, ну, есть несколько вещей, которые вы можете попробовать:
-
Попробуйте запустить which mysql_config
из bash. Это, вероятно, не будет найдено. Вот почему сборка тоже не находит. Попробуйте запустить locate mysql_config
и посмотрите, вернется ли что-нибудь. Путь к этому двоичному файлу должен быть либо в переменной окружения оболочки $ PATH, либо в явном виде в файле setup.py для модуля, предполагая, что он ищет какое-то определенное место для этого файла.
-
Вместо использования MySQL-Python, попробуйте использовать "mysql-connector-python", его можно установить с помощью pip install mysql-connector-python
. Более подробную информацию об этом можно найти здесь и здесь.
-
Вручную найдите местоположение "mysql/bin", "mysql_config" и "MySQL-Python" и добавьте все это в переменную среды $ PATH.
-
Если все вышеперечисленные шаги не пройдены, вы можете попробовать установить "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
, из-за чего что-то выходит из коробки:
- Все команды MySQL, такие как
mysql
, mysqladmin
, mysql_config
и т.д., Не могут быть найдены, и в результате:
- "Панель настроек MySQL" не отображается в Системных настройках, а
- Вы не можете установить любой 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