Python 3.6.0でpip3を使用してmysqlclientをインストールしようとしています
$ pip3 install mysqlclient
Collecting mysqlclient
Using cached mysqlclient-1.3.10.tar.gz
Complete output from command python setup.py Egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/private/var/folders/3k/08g3yx_12kg99kyfs989md600000gn/T/pip-build-1qv_89jc/mysqlclient/setup.py", line 17, in <module>
metadata, options = get_config()
File "/private/var/folders/3k/08g3yx_12kg99kyfs989md600000gn/T/pip-build-1qv_89jc/mysqlclient/setup_posix.py", line 54, in get_config
libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
File "/private/var/folders/3k/08g3yx_12kg99kyfs989md600000gn/T/pip-build-1qv_89jc/mysqlclient/setup_posix.py", line 54, in <listcomp>
libraries = [dequote(i[2:]) for i in libs if i.startswith('-l')]
File "/private/var/folders/3k/08g3yx_12kg99kyfs989md600000gn/T/pip-build-1qv_89jc/mysqlclient/setup_posix.py", line 12, in dequote
if s[0] in "\"'" and s[0] == s[-1]:
IndexError: string index out of range
----------------------------------------
Command "python setup.py Egg_info" failed with error code 1 in /private/var/folders/3k/08g3yx_12kg99kyfs989md600000gn/T/pip-build-1qv_89jc/mysqlclient/
やった
brew install mysql-connector-c
しかし、まだこのエラーが発生する
これは私のために働いた:
brew install mysql-connector-c
編集mysql_config
(検索:which mysql_config
)
mysql_configでこれを修正します。
# Create options
libs="-L$pkglibdir"
libs="$libs -l "
次のようになります:
# Create options
libs="-L$pkglibdir"
libs="$libs -lmysqlclient -lssl -lcrypto"
brew info openssl
pip3 install mysqlclient
最初にlibmysqlclient-devをインストールすることでこれを解決しました:
Sudo apt-get install libmysqlclient-dev
それがあなたに役立つことを願っています。
extensiveトラブルシューティングの後、brew install mysql-connector-c
が機能しないことがわかりました。
問題は、mysql_config
がインストールされていることをシステムが識別できないことに起因します(これはmysql-connector-c
が本質的に行うことです)。 mysql-connector-c
に/Cellar/
をインストールし、/usr/local/bin/
ディレクトリへのシンボリックリンクを作成するHomebrewの方法(引数用にオープン)は、Pythonシンボリックリンクをたどろうとします。
この問題を解決するために、次を実行しました。
brew uninstall mysql-connector-c
.dmg
をダウンロードするだけで、ここで複雑にする必要はありません...which mysql_config
/usr/local/bin/mysql/bin/mysql_config
が表示されるはずですvirtualenv
をアクティブにします(該当する場合)
pip install mysqlclient
Homebrewを使用する方法は他にもありますが、これは私が見つけた最も簡単な解決策でした。
mysqlclient
GitHub README.mdには、Python3のC-developerヘッダーが必要であることも記載されていることに注意してください。 mysql-connector-c
にはそれらが含まれると仮定します。ただし、さらに多くの問題が発生した場合は、Xcode Developer CI Toolsをインストールして適切に測定することもできます。
xcode-select --install
これらには、アップルのCコンパイラおよびその他の開発者ユーティリティが含まれます。続きを読む こちら 。
DjangoベースのWebサイトの開発中にこの問題に遭遇し、mysqlデータベースと通信するWebサイトをセットアップする必要がありました。 homebrewを使用してインストールを行ったことはありません。
AnacondaがインストールされたMacOSで開発を行っているため、Anacondaに問題があることがわかりました。詳細を知らなくても、conda install mysqlclient
でmysqlclientをインストールできました
この問題が他の誰かにも役立つことを願っています。
他のオプションはうまくいきませんでしたが、これはうまくいきました:
Python3の場合:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip3 install mysqlclient
Python2の場合:
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip2 install mysqlclient
または
env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install mysqlclient