не вдалося встановити файл pip mysql-python з EnvironmentError: mysql_config не знайдено


823

Це помилка, яку я отримую

(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

Що я можу зробити, щоб вирішити це?


1
Дивіться цю тему: [mysql_config не знайдено при встановленні інтерфейсу mysqldb python] [1] працював на мене :) [1]: stackoverflow.com/questions/7475223/…
Staccato

Я користувач ОС MAC, я вирішу це питання з цим питанням stackoverflow.com/questions/50940302/…
PatricioS

Відповіді:


1397

Здається, що у вашій системі відсутній mysql_config або інсталятор не зміг її знайти. Переконайтесь, що mysql_config дійсно встановлений.

Наприклад, на Debian / Ubuntu ви повинні встановити пакет:

sudo apt-get install libmysqlclient-dev

Можливо, mysql_config не стоїть на вашому шляху, це станеться в тому випадку, коли ви самі складете набір mysql.

Оновлення: для останніх версій debian / ubuntu (станом на 2018 рік) це

sudo apt install default-libmysqlclient-dev

24
Це все ще створило помилку для мене. Я використовував apt-get install python-mysqldbзамість цього.
Джонатан Літтке

51
мій досвід 2с: sudo apt-get install libmysqlclient-devпрацював на мене, sudo apt-get install python-mysqldbне допомагав
Анентроп

20
@JonatanLittke Встановлення глобального типу python-mysqldb йде всупереч точці virtualenv IMO.
fncomp

42
для Mariadb, sudo apt-get install libmariadbclient-devзробив трюк.
ювільо

11
Якщо ці рішення не apt-get install python-dev
підходять

295

У Mac OS я просто запустив це в терміналі, щоб виправити:

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

Це найшвидше виправлення, яке я знайшов - він додає його до шляху, але я думаю, вам краще додати його постійно (тобто додати його /etc/paths), якщо ви плануєте встановити MySQL-python в іншому середовищі.

(випробувано в OSX Mountain Lion)


6
Якщо ви використовуєте Bitnami в MAMP стека використання export PATH=$PATH:/Applications/mampstack-5.3.17-0/mysql/binЯкщо ви використовуєте цей комерційний стек MAMP , з іншого боку, видалити його і отримати Bitnami один , тому що це лайно , і не включає в себе заголовки MySQL.
Timmmm

3
Щоб зробити шлях постійним, додайте його внизу /etc/paths- вам потрібно буде відкрити нове вікно терміналу для доступу до нового шляху.
rojoca

@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

Здавалося, що робив трюк.


2
так, для мене лише libmysqlclient-dev було недостатньо, python-dev теж не вистачало.
Андерсон Сантос

У Ubuntu 12.04 (точне) (32-бітове) після оновлення inplace з 10.04 (зрозуміло) лише це вирішило ці помилки. Особливо додатковий "python-dev"!
Лід

Також працював і для мене - пітон-дев був останнім шматочком головоломки. Вже був встановлений python-mysqldb, тому це точно не все, що потрібно.
Тім С.

Оновлення: для Python3 потрібно встановити python3-dev.
cezar

Мені потрібно було це зробити, а також встановити 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

Дякую за підказку centos. Я переслідував це цілий ранок.
Піт Магсіг

Можливо, варто додати python3-dev/python3-devel
Гергелі М

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


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

Для користувачів центру :

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


1
Це звучить так, ніби ви не маєте права включати файли для встановленого бінарного файлу Python pip. Сам Python зазвичай забезпечує місце включення; вручну вказуючи шлях, швидше за все, вказує на неправильну версію .
Martijn Pieters

Мені довелося зробити 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
bennythe Judge

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 поза своїм віртуолом. Потім я повернувся до своєї віртуальної оточення і побіг, 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

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


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 не потребував файлів розробників.

правильним рішенням у цьому випадку було apt-get install --reinstall python-mysqldbвідновлення mysql-python до початкового стану.


2

У мене була така ж проблема і в Terraform: легкий контейнер. В його основі лежить Альпійський.

Там потрібно встановити mariadb-dev за допомогою:

apk add mariadb-dev

Але цього недостатньо, тому що також пропускаються всі інші залежності:

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

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 ще раз. Це працювало для мене


1

Виникла аналогічна проблема при спробі встановити на OS X Server 10.6.8. Ось що я мав зробити. Використання:

MySQL-python 1.2.4b4 (джерело) MySQL-5.6.19 (бінарний інсталятор) Python 2.7 (бінарний інсталятор) ПРИМІТКА: Встановлення у virtualenv ...

Розпакуйте джерело, відкрийте "distribute_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" не знайдена. Сподіваюся, це допомагає комусь іншим, хто намагається використати свої старі xserva :-)


1

Ваш шлях судо не знає про ваш місцевий шлях ... перейдіть в режим суперпользователя, додайте шлях і встановіть його звідти.

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

А ви працюєте на OSX. Тепер у вас є оновлений глобальний пітон.



0

у MacOS Mojave, mysql_config знайдено за адресою / usr / local / bin /, а не / usr / local / mysql / bin, як зазначено вище, тому не потрібно нічого додавати в шлях.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.