web-dev-qa-db-ja.com

mysqldb pythonインタフェースのインストール時にmysql_configが見つかりません

私はssh経由で接続しているLinuxサーバー上でPythonスクリプトを実行しようとしています。スクリプトはmysqldbを使用します。他に必要なコンポーネントはすべて揃っていますが、setuptoolsを使ってmySQLdbをインストールしようとすると、

python setup.py install

mysql_configコマンドに関連する以下のエラーレポートが表示されます。

sh: mysql_config: command not found
Traceback (most recent call last):
  File "setup.py", line 15, in <module>
    metadata, options = get_config()
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/usr/lib/python2.5/MySQL-python-1.2.3/setup_posix.py", line 24, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

他の誰かがこのエラーに遭遇しましたか?もしそうなら、どのようにしてそれを解決しましたか?/ mysqldbを正常にインストールするために何ができますか?

384
user904542

mySQLdbはmysql用のpythonインタフェースですが、mysql自体ではありません。そしてどうやらmySQLdbはコマンド 'mysql_config'を必要とするので、あなたはそれを最初にインストールする必要があります。

シェルから "mysql"を実行して、mysql自体をインストールしたかどうかを確認できますか?それはあなたに "mysql:command not found"以外の応答を与えるはずです。

どのLinuxディストリビューションを使っていますか? MySQLは、ほとんどのLinuxディストリビューション用にあらかじめパッケージ化されています。例えば、debian/ubuntuの場合、mysqlのインストールは同じくらい簡単です。

Sudo apt-get install mysql-server

mysql-configは別のパッケージに入っており、そこからインストールすることができます(やはり、debian/ubuntuを想定)

Sudo apt-get install libmysqlclient-dev

mariadbを使用している場合は、mysqlの代わりにドロップして実行します。

Sudo apt-get install libmariadbclient-dev
564
amarillion

私はpython-mysqlをUbuntu 12.04にインストールしていました

pip install mysql-python

最初に私は同じ問題を抱えていました:

Not Found "mysql_config"

これは私のために働きました

$ Sudo apt-get install libmysqlclient-dev

それから私はこの問題を抱えていた:

...
_mysql.c:29:20: error fatal: Python.h: No existe el archivo o el directorio

compilación terminada.

error: command 'gcc' failed with exit status 1

それから私は試してみました

apt-get install python-dev

それから私は幸せでした:)

pip install mysql-python
    Installing collected packages: mysql-python
      Running setup.py install for mysql-python
        building '_mysql' extension
        gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,2,4,'beta',4) -D__version__=1.2.4b4 -I/usr/include/mysql -I/usr/include/python2.7 -c _mysql.c -o build/temp.linux-x86_64-2.7/_mysql.o -DBIG_JOINS=1 -fno-strict-aliasing -g
        In file included from _mysql.c:44:0:
        /usr/include/mysql/my_config.h:422:0: aviso: se redefinió "HAVE_WCSCOLL" [activado por defecto]
        /usr/include/python2.7/pyconfig.h:890:0: nota: esta es la ubicación de la definición previa
        gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro build/temp.linux-x86_64-2.7/_mysql.o -L/usr/lib/x86_64-linux-gnu -lmysqlclient_r -lpthread -lz -lm -lrt -ldl -o build/lib.linux-x86_64-2.7/_mysql.so

Successfully installed mysql-python
Cleaning up...
168
xtornasol512

以下はUbuntu 12.04 LTSで私のために働きました:

apt-get install libmysqlclient-dev python-dev

それがうまくいったとしても、私はまだ以下をするために先に行きました:

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

Red Hatでは私がしなければならなかった

Sudo yum install mysql-devel gcc gcc-devel python-devel
Sudo easy_install mysql-python

それからそれは働いた。

27
Elliott

mysql-pythonをインストールしようとしたときに同じエラーが発生しました。

これが私がそれを直した方法です。

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

問題は、インストーラがデフォルトパスでmysql_configを見つけられなかったことです。今ではそれができます..そしてそれは働いた..

 15 warnings generated.
    clang -bundle -undefined dynamic_lookup -Wl,-F. build/temp.macosx-10.8-intel-2.7/_mysql.o -L/usr/local/mysql/lib -lmysqlclient_r -lz -lm -lmygcc -o build/lib.macosx-10.8-intel-2.7/_mysql.so -Arch x86_64

Successfully installed mysql-python
Cleaning up...

お役に立てれば。

ありがとう。

23
Mayank R Jain

次の手順でこの問題を解決しました。

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev
Sudo python setup.py install
18
zhaozhi

コマンド(mysqlも)mPATHが欠落している可能性があります。

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

17
samwize

(Mac専用)たくさんのことを試してみましたが、ようやくこれらのコマンドセットがうまくいきました。

  1. brew install mysql#install mysql
  2. brew unlink mysql
  3. brew install mysql-connector-c
  4. export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH#パスを更新し、mysqlのbinフォルダをpathに設定します。
  5. Sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib#createシンボリックリンク
  6. pip install mysqlclient#最後にmysql-clientをインストールする
9
Pulkit Pahwa

Libmysqlclientをインストールして修正しました。

Sudo apt-get install libmysqlclient16-dev
8
thoslin

MySQL-pythonパッケージは、ホスト上のmysql設定について知るためにmysql_configコマンドを使用しています。あなたのホストはmysql_configコマンドを持っていません。

Dev.mysql.comのMySQL開発ライブラリパッケージ(MySQL-devel-xxx)は、このコマンドとMySQL-pythonパッケージに必要なライブラリを提供します。 MySQL-develパッケージはdownload-communityサーバー領域にあります。 MySQL開発ライブラリのパッケージ名はMySQL-develで始まり、MySQLのバージョンとLinuxプラットフォームによって異なります(例:MySQL-devel-5.5.24-1.linux2.6.x86_64.rpm)。

Mysqlサーバーをインストールする必要はありません。

8
John Livingston

あなたがmacOSを使っていて、すでに[email protected]をbrew installでインストールしているのなら:

  1. brew install mysql-connector-c
  2. brew unlink [email protected]
  3. 最初にbrew link --overwrite --dry-run [email protected]、どのシンボリックリンクが上書きされているのかを確認する
  4. mysql関連のシンボリックリンクを実際に[email protected]で上書きするためのbrew link --overwrite --force [email protected]
  5. pip install mysqlclient
5
rilut

Centos 7ではこれは私のために働きます:

yum install mariadb-devel
pip install mysqlclient
5
Rajiv Sharma

Alpine Linuxの場合

$ apk add mariadb-dev mariadb-client mariadb-libs

MariaDBは MySQLの代わりのドロップイン であり、Alpine 3.2から新しい標準となりました。 https://bugs.alpinelinux.org/issues/4264 を参照してください。

5
aboutaaron

私のFedora 23マシンで私は以下を実行しなければなりませんでした:

Sudo dnf install mysql-devel
5
Raptor

私はこの問題を抱えていてmysql_configにシンボリックリンクを追加することで解決しました。

私は自作でmysqlをインストールしていて、出力でこれを見ました。

Error: The `brew link` step did not complete successfully

mysqlをどのように取得したかに応じて、場所は異なります。私の場合は/usr/local/Cellar/mysql
それがどこにあるかがわかったら、pythonがそれを探している場所へのシンボリックリンクを作成できるはずです。 /usr/local/mysql

これは私のために働きました。

ln -s /usr/local/Cellar/mysql/<< VERSION >>/bin/mysql_config   /usr/local/mysql/bin/mysql_config
4
Schechter

私は、端末上で以下の行を実行できると思います

 Sudo ln -s /usr/local/zend/mysql/bin/mysql_config /usr/sbin/

このmysql_configディレクトリはMacOSx上のzendサーバ用です。あなたは次の行のようにLinuxのためにそれを行うことができます

Sudo ln -s /usr/local/mysql/bin/mysql_config /usr/sbin/

これはデフォルトのLinux mysqlディレクトリです。

4
hkulekci

Python-devパッケージをインストールする必要があります。

Sudo apt-get install python-dev
3
ebarch

Sudo apt-get install python-mysqldb

Python 2.5?非常に古いバージョンのUbuntu Server(Hardy 8.04?)を使用しているようです - サーバーが使用しているLinuxのバージョンを確認してください。

ubuntuパッケージデータベースでのpython-mysql検索

いくつかの追加情報:

Mysql-pythonのREADMEから -

Red Hat Linux .............

MySQL-pythonはRed Hat Linux 7.x以降にあらかじめパッケージ化されています。これにはFedora CoreとRed Hat Enterprise Linuxが含まれます。上記のように独自のRPMパッケージを構築することもできます。

Debian GNU/Linux ................

python-mysqldb_としてパッケージされています::

# apt-get install python-mysqldb

またはSynapticを使用してください。

.. _python-mysqldbhttp://packages.debian.org/python-mysqldb

Ubuntu ......

Debianと同じです。

脚注:あなたが本当にUbuntu 10.04より古いサーバーディストリビューションを使っているのなら、あなたは公式のサポートを受けていないので、後でではなく早くアップグレードするべきです。

2
Gary

このメソッドはMysqlがインストールされているのにmysql_configが見つからないことを知っている人のためだけのものです。これは、python installがシステムパスにmysql_configを見つけられない場合に起こります。これは、.dmg Mac Packageを介してインストールを行った場合、またはカスタムパスでインストールした場合に主に起こります。 MySqlDBによる最も簡単で文書化された方法はsite.cfgを変更することです。おそらく/ usr/local/mysql/bin/にあるmysql_configを見つけて、以下のように変数、すなわちmysql_configを変更して、もう一度インストールを実行してください。 "#"を削除してコメントを外すことを忘れないでください

下の行に変更

"#mysql_config =/usr/local/bin/mysql_config"

"mysql_config =/usr/local/mysql/bin/mysql_config"

システム内のパスによって異なります。

ちなみに私はsite.cfgを変更した後にpythonインストールを使用しました

Sudo /System/Library/Frameworks/Python.framework/Versions/2.7/bin/python setup.py install

2
Ahsan.Amin

実際の誤差は

gcc ... -I/usr/include/python2.7 ...

_mysql.c:29:20: error: Python.h: No such file or directory

そして、python-devまたはpython-develパッケージをインストールできない場合は、 http://hg.python.org/ から必要なバージョンのpythonソースを含むアーカイブをダウンロードして、適切なフォルダーにヘッダーファイルを配置してください

1
Oleg Neumyvakin

Sudo apt-get build-dep python-mysqldbはPIP/easy_installからパッケージをビルドするために全ての依存関係をインストールします

1
Thomas Grainger

私は同じ問題を抱えていました。 Ubuntu 16.04にpython3-devを使ってPythonをインストールするには、 このチュートリアル を実行して解決しました。

Sudo apt-get update
Sudo apt-get -y upgrade
Sudo apt-get install -y python3-pip
Sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

そして今、あなたはあなたの仮想環境をセットアップすることができます:

Sudo apt-get install -y python3-venv
pyvenv my_env
source my_env/bin/activate
1
Little Brain

私は同じ問題に遭遇しました、ちょうど* mysql_config *が環境変数PATHに存在していたパスを追加して、それは私のために働きました。

1
flyer

これまでのところ、すべてのソリューション(Linux)をインストールするにはSudoまたはroot権限が必要です。 root権限がなく、Sudoがない場合の解決策は次のとおりです。 (いいえSudo apt install ...):

  1. Libmysqlclient-devの.debファイルをダウンロードしてください。 from この鏡
  2. ダウンロードしたファイルに移動してdpkg -x libmysqlclient-dev_<version tag>.deb .を実行します。これでusrというフォルダーが抽出されます。
  3. ./usr/bin/mysql_configのどこかに$PATHをシンボリックリンクします。

    ln -s`pwd`/usr/bin/mysql_config FOLDER_IN_YOUR_PATH

  4. これでmysql_configが見つかるはずです

Ubuntu 18.04でテスト済み。

1
RunOrVeith

ただタイプ:

$ Sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python

これでこの問題は解決します。

1
Luciano D. Mota

CentOS 7では、次のことを行う必要があります。

#step1:install mysql 
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/

#step2:
Sudo yum install mysql-devel
0
DachuanZhao

MacOS Mojaveの場合、追加の設定が必要でした。コンパイラが openssl を見つけるには、次のように設定する必要があります。

export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"
0