新しい環境構成
virtualenv --no-site-packages new_env
MySQL-pythonをインストールします
pip install MySQL-python
エラーを発生させる
Complete output from command python setup.py egg_info:
sh: mysql_config: command not found
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/8d/2c8f84vj48gg980_srg1ph200000gp/T/pip-install-gNeVyX/MySQL-python/setup.py", line 17, 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 25, 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 in /private/var/folders/8d/2c8f84vj48gg980_srg1ph200000gp/T/pip-install-gNeVyX/MySQL-python/
分析
ステップ1:問題を確認する
明らかに、mysql_configコマンドがないため、ここでエラーが表示されます。ここでコマンドを実行して、mysql_configがシステムにあるかどうかを確認してください。
which mysql_config
システムが戻る
mysql_config not found
命令が存在しません。
mysqlの公式Webサイトにアクセスしてmysql_configにクエリを実行し、mysql_configコマンドツールの有用性を理解してください。
tip1: 编译MySQL客户端并将其连接到MySQL
tip2: 它是一个shell脚本
ここでmysql_configを取得しました。これは、MySQLクライアントをコンパイルしてMySQLに接続するために使用されるシェルスクリプトです。これは、MySQL-pythonがmysql_configスクリプトを必要とする理由を基本的に説明できます。
つまり、MySQL-pythonはPythonを使用した実装であり、MySQLは接続を構築します。そして、Pythonプログラム開発者にAPIを呼び出すためのクライアントを提供します。
ステップ2:変換の問題
MySQLは公式にダウンロード機能を提供していないため、mysql_configを直接インストールする方法がないためです。
ステップ3:mysql_configツールでツールを確認します
brewにインストールできるツールの中には、mysql_configツールで一般的に使用されるツールがいくつかあります。
ツール名 | 設置方法 |
---|---|
mysql-client | brew install mysql-client |
mysql | brew install mysql |
実行計画
ここではmysql-clientが選択されており、mysql-clientも推奨されます。mysql-clientは、MySQLのビルドと接続に特に使用されるツールです。対応する拡張機能と開発の依存関係は比較的完全です。
brew install mysql-client
成功した後に戻る
==> Downloading https://homebrew.bintray.com/bottles/mysql-client-5.7.23.mojave.bottle.tar.gz
Already downloaded: /Users/zhiping.li/Library/Caches/Homebrew/downloads/4aac41a5c1a9775a2206e2e4a0b2f298aa3170c480d37306655a131d5882998f--mysql-client-5.7.23.mojave.bottle.tar.gz
==> Pouring mysql-client-5.7.23.mojave.bottle.tar.gz
==> Caveats
mysql-client is keg-only, which means it was not symlinked into /usr/local,
because conflicts with mysql.
If you need to have mysql-client first in your PATH run:
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.zshrc
For compilers to find mysql-client you may need to set:
export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
For pkg-config to find mysql-client you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/mysql-client/lib/pkgconfig"
==> Summary
? /usr/local/Cellar/mysql-client/5.7.23: 232 files, 80.5MB==> Downloading https://homebrew.bintray.com/bottles/mysql-client-5.7.23.mojave.bottle.tar.gz
Already downloaded: /Users/zhiping.li/Library/Caches/Homebrew/downloads/4aac41a5c1a9775a2206e2e4a0b2f298aa3170c480d37306655a131d5882998f--mysql-client-5.7.23.mojave.bottle.tar.gz
==> Pouring mysql-client-5.7.23.mojave.bottle.tar.gz
==> Caveats
mysql-client is keg-only, which means it was not symlinked into /usr/local,
because conflicts with mysql.
If you need to have mysql-client first in your PATH run:
echo 'export PATH="/usr/local/opt/mysql-client/bin:$PATH"' >> ~/.zshrc
For compilers to find mysql-client you may need to set:
export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
For pkg-config to find mysql-client you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/mysql-client/lib/pkgconfig"
==> Summary
? /usr/local/Cellar/mysql-client/5.7.23: 232 files, 80.5MB
返された命令に従って、環境変数とコンパイラの依存関係を構成します。
# 配置环境变量
export PATH="/usr/local/opt/mysql-client/bin:$PATH"
# 配置编译器依赖
export LDFLAGS="-L/usr/local/opt/mysql-client/lib"
export CPPFLAGS="-I/usr/local/opt/mysql-client/include"
上記の手順を実行した後、pipは、MySQL-pythonをインストールし、クライアントをコンパイルおよび生成するときに、対応するmysql_configツールを見つけることができます。
pip install MySQL-python
通常、正常にインストールされます
Collecting MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5
チップ
xcodeなどの依存関係ライブラリの問題が原因でプログラムをコンパイルできない場合がありますが、mysql_configとは関係ありません。現時点では、xcode依存関係のインストールまたは更新の問題を解決する必要があります。を参照してください。いくつかの成熟した記事。