pip install mysql-python терпит неудачу с EnvironmentError: конфигурация mysql не найдена

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

(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

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

18 ответов


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

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

sudo apt-get install libmysqlclient-dev

возможно, mysql_config не находится в вашем пути, это будет случай, когда вы компилируете сами MySQL suite.

обновление: для последних версий debian / ubuntu (по состоянию на 2018 год) это

sudo apt install default-libmysqlclient-dev

запуск Mac OSX Mountain Lion, я просто запустил это в терминале, чтобы исправить:

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

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


apt-get install libmysqlclient-dev python-dev

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


там, возможно, различные ответы на вышеупомянутый вопрос, ниже приведено агрегированное решение.

Для Ubuntu:

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

Для CentOS:

$ yum install python-devel mysql-devel

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

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

pip install mysql-connector-python

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

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


на в 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


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

brew install mysql

затем экспортируйте путь следующим образом

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

наконец глобально или в вашем venv

pip install MySQL-Python

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

и это сделало трюк.


OSX Mavericks

из-за изменений в osx mavericks & xcode development tools вы можете получить ошибку при установке

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

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

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

ln -s /usr/bin/mariadb_config /usr/bin/mysql_config

попробовать sudo apt-get build-dep python-mysqldb


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

sudo apt-get install libmariadbclient-dev

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


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

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

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

pip install  mysqlclient

была аналогичная проблема при попытке установить на OS X Server 10.6.8. Вот что я должен был сделать. Использование:

MySQL-python 1.2.4b4 (источник) Для MySQL 5.6.19 (бинарные установки) В Python 2.7 (бинарные установки) Примечание: установка в virtualenv...

распаковать исходный код, открыть 'distribute_setup.py и отредактируйте DEFAULT_VERSION, чтобы использовать последнюю версию distribute tools, например:

DEFAULT_VERSION = "0.6.49"

сохранить. Открыть сайт.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

теперь clean, build и make не потерпят неудачу с ошибкой "mysql_config" не найдена. Надеюсь, что это помогает кто-то еще пытается использовать свои старые места :-)


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

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

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


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

pip install --upgrade pip

у меня была такая же проблема в Terraform: light container. Он основан на Alpine.

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

apk add mariadb-dev

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

apk add python2 py2-pip gcc python2-dev musl-dev