Mac OS X-EnvironmentError:mysql_configが見つかりません


121

まず、ええ、私はすでにこれを見ました:

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

問題

Google App EngineプロジェクトでDjangoを使用しようとしています。ただし、次の理由でサーバーが正常に起動しないため、起動できませんでした。

ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

私はいくつかの調査を行い、明らかに私のシステムにはないので、Mysql-pythonをインストールする必要があることをすべて指摘しました。私は実際にそれをアンインストールしてみました、そしてこれを得ました:

Cannot uninstall requirement mysql-python, not installed

私が実際にインストールしようとするときはいつでも:

sudo pip install MySQL-python

次のエラーが表示されます。

raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

私はすでに実行しようとしました:

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

しかし、インストールコマンドを再度実行しても失敗するため、それは役に立たないようです。

何か案は?

私はvirtualenvではないことに注意してください。


いつでもファイルにアクセスしてEnvironmentError、のようなより有用なデバッグ情報を出力できos.getcwd()ます。を追加してpdb.set_trace()、計算することもできます。
ealfonso

回答:


340

では、まず、私があなたと同じページにいるかどうかを確認しましょう。

  • あなたはPythonをインストールしました
  • あなたがした brew install mysql
  • あなたがした export PATH=$PATH:/usr/local/mysql/bin
  • そして最後に、あなたがやったpip install MySQL-Python(またはpip3 install mysqlclient Python 3を使用している場合)

これらの手順をすべて同じ順序で実行してもエラーが発生する場合は、最後まで読んでください。ただし、これらの正確な手順を実行しなかった場合は、最初から実行してください。

したがって、手順を実行してもエラーが発生しますが、いくつか試してみることができます。

  1. which mysql_configbashから実行してみてください。おそらく見つかりません。これが、ビルドがそれを見つけられない理由です。実行locate mysql_configしてみて、何かが戻ってくるかどうかを確認してください。このバイナリへのパスは、シェルの$ PATH環境変数にあるか、モジュールのsetup.pyファイルで明示的に指定されている必要があります。

  2. MySQL-Pythonを使用する代わりに、「mysql-connector-python」を使用してみてくださいpip install mysql-connector-python。これはを使用してインストールできます。この詳細については、こちらこちらをご覧ください

  3. 「mysql / bin」、「mysql_config」、および「MySQL-Python」の場所を手動で見つけ、これらすべてを$ PATH環境変数に追加します。

  4. 上記のすべての手順が失敗した場合は、MacPortsを使用して「mysql」をインストールしてみてください。この場合、「mysql_config」ファイルは実際には「mysql_config5」と呼ばれ、この場合、インストール後にこれを行う必要がありますexport PATH=$PATH:/opt/local/lib/mysql5/bin。詳細については、こちらをご覧ください

注1:インストールpython-devlibmysqlclient-devもいましたが、これらのパッケージがMac OSで利用できるかどうかはわかりません。

注2:また、必ずルートとしてコマンドを実行してください。

:私はこれらの場所(多分あなたはそれが役立つかどうかを確認するために、それらを見て持つことができる)(私の脳以外)からの私の回答を得た1234

私は助けてくれることを望み、これがうまくいったかどうかを知りたいと思っています。幸運を。


2
素晴らしい説明、LinuxでのFWIW、python-devとlibmysqlclient-devのインストールは通常、それを機能させるために必要な唯一のことですが、osxでは、バスを更新するだけで済みました。私は信じているあなたはライブラリが示されたDEVをインストールしない場合、MySQL-pythonのためのpython DEPSを取得せずにMySQLをインストールすることができますLinux上で。(その間違いを何度も何度も
Iain Duncan 14年

1
Yosemiteへのアップグレード後、「stdio.h」が見つからないというメッセージが表示されるようになりました。:あなたはここに行くことによって、それを修正することができますstackoverflow.com/questions/19580758/...
ミハイOpreaを

4
実行してbrew install mysql修正しました。また、このコマンドwhich mysql-configは機能しませんでしたが、機能しましwhich mysql_configた。
チャド

1
私はまた、追加する必要がありました。このラインを私に.bash_profileファイル:export DYLD_LIBRARY_PATH=/usr/local/Cellar/mysql/5.7.9/lib/
JeffThompson

2
私は醸造所の設置を指さなければなりexport PATH=$PATH:/usr/local/Cellar/mysql/5.7.20/bin
ませんでした

6

私はこの問題を永遠にデバッグしてきました-3時間17分。特に私を苛立たせたのは、以前のuni作業を通じて既にシステムにSQLをインストールしていたが、pip / pip3がそれを認識しなかったことでした。上記のこれらのスレッド、および私がインターネットを精査した他の多くのスレッドは、問題の解明に役立ちましたが、実際には解決しませんでした。

回答

Pipは、Macintosh HD @ に対して相対的に配置されているHomebrew Directoryでmysqlバイナリを探しています。

/usr/local/Cellar/

そのため、いくつかの変更を行う必要があることがわかりました

ステップ1:MySqlをまだダウンロードしていない場合はダウンロードしますhttps://dev.mysql.com/downloads/

ステップ2:Macintosh HDとcdに関連してそれを見つける

/usr/local/mysql/bin

手順3:ターミナルを開いて、選択したテキストエディターを使用します-私は自分自身がneovimの男なので、入力しました(Macには自動的に付属していません...別の日の別の話)

nvim mysql_config

ステップ4:約112行目に表示されます

# Create options 
libs="-L$pkglibdir"
libs="$libs -l "

への変更

# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"

*このファイルには読み取り専用のアクセス権があるため、vimまたはneovimを使用している場合は

:w !sudo tee %

手順5:ホームディレクトリに移動し、.bash_profileファイルを編集します

cd ~

その後

nvim .bash_profile

そして追加

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

ファイルに保存します

ステップ6:Macintosh HDを基準にした相対パスと追加

cd /private/etc/

その後

nvim paths

そして追加

/usr/local/mysql/bin

*このファイルは読み取り専用アクセスであるため、vimまたはneovimを使用している場合は、

:w !sudo tee % 

その後

cd ~

次に、実行して変更を加えてターミナルを更新します

source .bash_profile

最後に

pip3 install mysqlclient

そしてヴィオラ。それが雰囲気だということを忘れないでください。


私のlibs内部はmysql_config、「変更先」セクションで説明したとおりです。ただし、PATHを追加すると、以前private/etcmysqlclientそのグローバルインストールが失敗していました。
martin-martin

5

完全なmysqlをインストールしたくない場合は、mysqlclientをインストールするだけでこれを修正できます。cmd brew install mysqlclient が完了すると、次の行をに追加するように求められます~/.bash_profile

echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.bash_profile

端末を閉じて新しい端末を起動して続行します pip install mysqlclient


3

MacOS CatalinaでPython 3.6を実行しています。私の問題は、インストールしようとしたところ、mysqlclient==1.4.2.post1mysql_config not foundエラーがスローされ続けることでした。

これは私が問題を解決するために取ったステップです。

  1. brewを使用してmysql-connector-cをインストールします(mysqlがすでにunlinkを最初にインストールしている場合brew unlink mysql)-brew install mysql-connector-c
  2. mysql_configを開き、112行目でファイルを編集します。
# Create options 
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
  1. brew info openssl -これにより、opensslをPATHに配置するために何が必要かについての詳細情報が得られます
  2. ステップ3に関連して、opensslをPATHに入れるには、これを行う必要があります- echo 'export PATH="/usr/local/opt/openssl/bin:$PATH"' >> ~/.bash_profile
  3. コンパイラがopensslを見つけるために- export LDFLAGS="-L/usr/local/opt/openssl/lib"
  4. コンパイラがopensslを見つけるために- export CPPFLAGS="-I/usr/local/opt/openssl/include"

ありがとうございました!多くのことを試しましたが、あなたの方法はうまくいきました。
やぎむつ

2

これは、mysqlclientをインストールしたときにも発生します。

$ pip install mysqlclient

user3429036が言ったように、

$ brew install mysql

1

この回答はbrew、公式サイトからではなく、公式サイトからインストールしたMacOSユーザーを対象としてい.dmg/.pkgます。そのインストーラーはを編集できずPATH、箱から出してしまいます:

  1. 全てのMySQLコマンドは好きmysqlmysqladminmysql_config、などの結果として、見つけることができません。
  2. 「MySQLの環境設定パネルでは、」システム環境設定に表示されない、と
  3. MySQLと通信するAPIをインストールすることはできません。 mysqlclient

あなたがしなければならないことは、MySQL binフォルダーを追加することです(通常/usr/local/mysql/bin、ファイルに次のPATH行を追加することによって~/.bash_profile

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

次に~/.bash_profile、現在のターミナルセッションで変更を有効にするためにをリロードする必要があります。

source ~/.bash_profile

mysqlclientただし、をインストールする前に、XcodeBuildライセンスに同意する必要があります。

sudo xcodebuild -license

彼らの指示に従って家族をサインアウトします。その後、mysqlclient問題なくインストールできるはずです。

pip install mysqlclient

それをインストールしたら、そのMySQLの(に付属のランタイムのバグを修正するためのもう一つのことを行う必要があり、動的ライブラリがlibmysqlclient.dylib見つからない)、お使いのシステムの動的ライブラリパスに次の行を追加して:

export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/:$DYLD_LIBRARY_PATH


実行sudo lsof -i :3306してアクティブなMySQLプロセスのPID sudo -P <pid>を確認し、その上で実行して開いているファイルを確認することにより、ディスク上のバイナリを見つけた後、あなたの答えを見ました。これは/usr/local/mysql-8.0.18-macos10.14-x86_64/bin私が追加したもの$PATH出来上がりました
Neil C. Obremski、

0

バージョンを指定してHomebrewを使用してmysqlをインストールした場合、mysql_configがここに表示されます。- /usr/local/Cellar/mysql@5.6/5.6.47/bin

/ usr / local /ディレクトリでlsコマンドを使用して、sql binのパスを見つけることができます

/usr/local/Cellar/mysql@5.6/5.6.47/bin

このようにbashプロファイルへのパスを追加します。

nano ~/.bash_profile

export PATH="/usr/local/Cellar/mysql@5.6/5.6.47/bin:$PATH"

0

私の場合の問題は、Python仮想環境内でコマンドを実行していて、.bash_profileファイルに配置したにもかかわらず、/ usr / local / mysql / binへのパスがないことでした。仮想環境でパスをエクスポートするだけでうまくいきました。

参考までに、sql_configはbinディレクトリ内にあります。


-1

インストールbrewまたはapt-getも簡単ではないので、https://dev.mysql.com/downloads/connector/python/からmysqlをダウンロードしてインストールしました。だから私はmysql_configをこのディレクトリに見つけることができます:/ usr / local / mysql / bin

次のステップは:

  1. エクスポートPATH = $ PATH:/ usr / local / mysql / bin
  2. MySQL-python == 1.2.5のpipインストール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.