При попытке установить модуль MariaDB для Python я действовал согласно инструкции с официального сайта MariaDB.
pip install mariadb
Но получил вот такую ошибку.
Collecting mariadb
Using cached https://files.pythonhosted.org/packages/c9/1c/201f431285356652ddf6daa89973e7d37ef1b519dc01d9cce9c866610c84/mariadb-1.1.4.zip
Complete output from command python setup.py egg_info:
/bin/sh: mariadb_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/m6/_kvlmqwn629_jgmxs0xm34lh0000gn/T/pip-install-31es4ebz/mariadb/setup.py", line 27, in <module>
cfg = get_config(options)
File "/private/var/folders/m6/_kvlmqwn629_jgmxs0xm34lh0000gn/T/pip-install-31es4ebz/mariadb/mariadb_posix.py", line 62, in get_config
cc_version = mariadb_config(config_prg, "cc_version")
File "/private/var/folders/m6/_kvlmqwn629_jgmxs0xm34lh0000gn/T/pip-install-31es4ebz/mariadb/mariadb_posix.py", line 28, in mariadb_config
raise EnvironmentError(
OSError: mariadb_config not found.
This error typically indicates that MariaDB Connector/C, a dependency which
must be preinstalled, is not found.
If MariaDB Connector/C is not installed, see installation instructions
If MariaDB Connector/C is installed, either set the environment variable
MARIADB_CONFIG or edit the configuration file 'site.cfg' to set the
'mariadb_config' option to the file location of the mariadb_config utility.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /private/var/folders/m6/_kvlmqwn629_jgmxs0xm34lh0000gn/T/pip-install-31es4ebz/mariadb/
Disclaimer
Данная статья является личным опытом решения данной ошибки. Путём проб и ошибок, перелистывания различных ресурсов интернета решена. Так же версия моей операционной системы является устаревшей, на момент написания статьи MacOS 10.14
В ошибке явно готовиться о неком продукте MariaDB Connector/C. Покопавшись ещё немного в документации mariadb, наткнулся на второй пункт из картинки ниже, который требует установить этот пакет прежде чем приступать к установке пакета mariadb.
Но перейдя по ссылке второго пункта, мы обнаружим, что установить требуемый пакет MariaDB Connector/C возможно только для среды Linux или Microsoft.
Продолжаем дальше долбить запросы в Google и изучать ссылки на документацию. В результате находим вот такую интересную официальную инструкцию. В ней нам предлагают установить HomeBrew и уже через него скачать необходимый пакет.
HomeBrew
Поскольку я пользуюсь маком, а на нем все программы устанавливаются c appstorrent App Store и в основном через графический интерфейс, то он лишён такого чуда как пакетный менеджер yum или dnf. Подобные менеджеры используются в средах Linux и являются, своего рода, магазином (но только бесплатным) приложений в текстовом интерфейсе терминала. И HomeBrew является как-раз таки подобного рода магазином но только для Яблока. Всё это объяснение очень грубо и натянуто, но, я думаю, вы поняли для чего нам необходима эта терминальная команда. Поэтому открываю открываю терминал и вставляю туда команду для установки HomeBrew.
Нам выдают некоторые предупреждения, я внимательно читаю и принимаю продолжить установку. Жму Return и жду пару минут, пока всё загрузится и установится.
Почти всё установилось, но я получил ошибку, к которой стразу же предлагалось решение. Если у вас никаких предупреждений нет, просто пропустите этот шаг. Вводим команду и ждём ещё несколько минут. На экране ничего отображаться не будет, просто ждём.
Спустя минут 10 всё установится.
вводим команду
brew update
и после
brew upgrade
Пока подгружаются необходимые пакеты вы вполне успеете посмотреть серию своего любимого сериала за чашечкой горячего шоколада с маршмеллоу.
А мы продолжаем. Осталось совсем чуть-чуть. После установки и обновления менеджера пакетов Homebrew, можно приступить к установке MariaDB.
brew install mariadb
После установки в homebrew, mariadb будет доступна для Python в HomeBrew, и чтобы не менять интерпретатор по умолчанию, я выполнил установку для локальной версии.
pip3 install mariadb
Примечание: На самом деле установку лучше выполнить для витруального окружения /venv своего проекта. Ву-а-ля! Всё заработало.