web-dev-qa-db-ja.com

pip install mysql-pythonがEnvironmentErrorで失敗します:mysql_configが見つかりません

これは私が得るエラーです

(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

これを解決するために何ができますか?

750
zjm1126

システムにmysql_configがないか、インストーラがそれを見つけることができませんでした。 mysql_configが本当にインストールされていることを確認してください。

例えばDebian/Ubuntuでは、パッケージをインストールする必要があります。

Sudo apt-get install libmysqlclient-dev

たぶんmysql_configがあなたのパスにない、あなたが自分でmysqlスイートをコンパイルするとき、それはそうなるでしょう。

更新: /最新のdebian/ubuntuのバージョン(2018年現在)

Sudo apt install default-libmysqlclient-dev
1255
Fbo

Mac OSX Mountain Lionを実行して、修正するためにターミナルでこれを実行しました:

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

これは私が見つけた最も迅速な修正です-パスに追加しますが、別の環境にMySQL-pythonをインストールする予定がある場合は、永続的に追加する(つまり/etc/pathsに追加する)方が良いと思います。

277
Chris Villa
apt-get install libmysqlclient-dev python-dev

トリックをやるようだった。

96
steve-gregory

上記の問題にはさまざまな答えがあるかもしれませんが、以下は総合的な解決策です。

Ubuntuの場合:

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

CentOSの場合:

$ yum install python-devel mysql-devel
81
user2886440

centos usersの場合

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

24
lancerex

MySQL Connector/Pythonを使用できます

PyPipによるインストール

pip install mysql-connector-python

さらなる情報は MySQL Connector/Python 1.0.5ベータ版発表 ブログで見つけることができます。

Launchpadでは、ライブラリに データを追加、編集、削除する方法の良い例 _があります。

24
ndequeker

MACを利用している場合これをグローバルにインストールする

brew install mysql

次にこのようにパスをエクスポートします

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

最後にグローバルにまたはあなたのvenvに

pip install MySQL-Python
23
Zaman Afzal

Amazon EC2 Linuxインスタンスにmysql-pythonをインストールしようとしていましたが、これらをインストールする必要がありました。

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

そしてそれがトリックでした。

16
Emil Davtyan

MySQLの代わりにMariaDBを使用している人のために、解決策はlibmariadbclient-devパッケージをインストールして正しい名前で設定ファイルへのシンボリックリンクを作成することです。

例えばこれは私のために働いた:

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

OSXマーベリックス

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

Sudo apt-get build-dep python-mysqldbを試す

4
KalamHavij

最初にmysqlをインストールしてください。

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

それからあなたはmysqlclientをインストールすることができます:

pip install  mysqlclient
3
aircraft

mariadbのインストール lib mariadb client-dev の代わりに libmysqlclient-dev

Sudo apt-get install libmariadbclient-dev
2
Dinesh Sharma

従うべき順序。

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
lakshman

時々エラーは実際の原因によって異なります。 mysql-pythonがpython-mysqldb debianパッケージを通してインストールされたケースがありました。

これを知らなかった開発者が、誤ってpip uninstall mysql-pythonを実行し、pip install mysql-pythonで上記のエラーを表示して回復に失敗しました。

pip uninstall mysql-pythonはdebianパッケージの内容を破壊しました、そしてもちろんpip install mysql-pythonはdebianパッケージがdevファイルを必要としなかったので失敗しました。

その場合の正しい解決策はmysql-pythonを元の状態に復元したapt-get install --reinstall python-mysqldbです。

1
eMBee

あなたのSudoパスはあなたのローカルパスについて知らない...スーパーユーザモードに入り、パスを追加し、そしてそこからインストールする。

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

そして、あなたはOSX上で稼働しています。今、あなたは更新されたグローバルpythonを持っています。

0
Paul Kenjora

Linuxの場合

これは私のために働く

yum install python-devel mysql-devel
0
penny chan

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'が見つかりませんというエラーで失敗しません。これが他の誰かが彼らの古いxservesを利用しようとするのを助けてくれることを願っています:-)

0
Brad Herdson

仮想環境にMySQL-pythonをインストールする場合は、pipのバージョンを確認する必要があります。バージョンが9.0.1より古い場合は、更新してください。

pip install --upgrade pip
0
Albert Chen

Terraform:light containerにも同じ問題がありました。それはアルパインに基づいています。

そこで、mariadb-devをインストールする必要があります。

apk add mariadb-dev

しかし、それだけでは十分ではありません。他のすべての依存関係も失われているからです。

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