私は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を正常にインストールするために何ができますか?
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
私は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...
以下はUbuntu 12.04 LTSで私のために働きました:
apt-get install libmysqlclient-dev python-dev
それがうまくいったとしても、私はまだ以下をするために先に行きました:
export PATH=$PATH:/usr/local/mysql/bin/
Red Hatでは私がしなければならなかった
Sudo yum install mysql-devel gcc gcc-devel python-devel
Sudo easy_install mysql-python
それからそれは働いた。
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...
お役に立てれば。
ありがとう。
次の手順でこの問題を解決しました。
Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev
Sudo python setup.py install
コマンド(mysqlも)mPATHが欠落している可能性があります。
export PATH=$PATH:/usr/local/mysql/bin/
(Mac専用)たくさんのことを試してみましたが、ようやくこれらのコマンドセットがうまくいきました。
brew install mysql
#install mysqlbrew unlink mysql
brew install mysql-connector-c
export PATH=/usr/local/Cellar/mysql/8.0.11/bin:$PATH
#パスを更新し、mysqlのbinフォルダをpathに設定します。Sudo ln -s /usr/local/Cellar/mysql/8.0.11/lib/libmysqlclient.21.dylib /usr/local/Cellar/lib/libmysqlclient.21.dylib
#createシンボリックリンクpip install mysqlclient
#最後にmysql-clientをインストールするLibmysqlclientをインストールして修正しました。
Sudo apt-get install libmysqlclient16-dev
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サーバーをインストールする必要はありません。
あなたがmacOSを使っていて、すでに[email protected]をbrew installでインストールしているのなら:
brew install mysql-connector-c
brew unlink [email protected]
brew link --overwrite --dry-run [email protected]
、どのシンボリックリンクが上書きされているのかを確認するbrew link --overwrite --force [email protected]
pip install mysqlclient
Centos 7ではこれは私のために働きます:
yum install mariadb-devel
pip install mysqlclient
Alpine Linuxの場合
$ apk add mariadb-dev mariadb-client mariadb-libs
MariaDBは MySQLの代わりのドロップイン であり、Alpine 3.2から新しい標準となりました。 https://bugs.alpinelinux.org/issues/4264 を参照してください。
私のFedora 23マシンで私は以下を実行しなければなりませんでした:
Sudo dnf install mysql-devel
私はこの問題を抱えていて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
私は、端末上で以下の行を実行できると思います
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ディレクトリです。
Python-devパッケージをインストールする必要があります。
Sudo apt-get install python-dev
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-mysqldb
: http://packages.debian.org/python-mysqldb
Ubuntu ......
Debianと同じです。
脚注:あなたが本当にUbuntu 10.04より古いサーバーディストリビューションを使っているのなら、あなたは公式のサポートを受けていないので、後でではなく早くアップグレードするべきです。
このメソッドは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
実際の誤差は
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ソースを含むアーカイブをダウンロードして、適切なフォルダーにヘッダーファイルを配置してください
Sudo apt-get build-dep python-mysqldb
はPIP/easy_installからパッケージをビルドするために全ての依存関係をインストールします
私は同じ問題を抱えていました。 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
私は同じ問題に遭遇しました、ちょうど* mysql_config *が環境変数PATHに存在していたパスを追加して、それは私のために働きました。
これまでのところ、すべてのソリューション(Linux)をインストールするにはSudo
またはroot権限が必要です。 root権限がなく、Sudo
がない場合の解決策は次のとおりです。 (いいえSudo apt install ...
):
dpkg -x libmysqlclient-dev_<version tag>.deb .
を実行します。これでusr
というフォルダーが抽出されます。./usr/bin/mysql_config
のどこかに$PATH
をシンボリックリンクします。
ln -s
`pwd`
/usr/bin/mysql_config FOLDER_IN_YOUR_PATH
これでmysql_config
が見つかるはずです
Ubuntu 18.04でテスト済み。
ただタイプ:
$ Sudo apt-get install python-dev
$ venv/bin/pip install MySQL-python
これでこの問題は解決します。
CentOS 7では、次のことを行う必要があります。
#step1:install mysql
https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
#step2:
Sudo yum install mysql-devel
MacOS Mojaveの場合、追加の設定が必要でした。コンパイラが openssl を見つけるには、次のように設定する必要があります。
export LDFLAGS="-L/usr/local/opt/openssl/lib"
export CPPFLAGS="-I/usr/local/opt/openssl/include"