web-dev-qa-db-ja.com

python3のmacosにmariadbのmysqlclientをインストールする

MAC OSSierraでのPython3のpip install mysqlclientの処理に問題があります。

running build_ext
building '_mysql' extension
creating build/temp.macosx-10.12-x86_64-3.6
clang -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/Cellar/openssl/1.0.2k/include -Dversion_info=(1,3,10,'final',0) -D__version__=1.3.10 -I/usr/local/Cellar/mariadb/10.2.6/include/mysql -I/usr/local/Cellar/mariadb/10.2.6/include/mysql/.. -I/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/include/python3.6m -c _mysql.c -o build/temp.macosx-10.12-x86_64-3.6/_mysql.o
_mysql.c:1911:42: error: no member named 'reconnect' in 'struct st_mysql'
        if ( reconnect != -1 ) self->connection.reconnect = reconnect;
                               ~~~~~~~~~~~~~~~~ ^
1 error generated.
error: command 'clang' failed with exit status 1

MariaDBとxcode-select --installをインストールし、処理しました。

7
Vyacheslav

mariadb10.2.xmariadb10.1以降、問題はここにあります.23mysqlclientをインストールしても問題ありません。

したがって、mariadb10.2.xを使用して、mariadb-connector-cをインストールする必要があります。

brew unlink mariadb

brew install mariadb-connector-c
ln -s /usr/local/opt/mariadb-connector-c/bin/mariadb_config /usr/local/bin/mysql_config

pip install mysqlclient

rm /usr/local/bin/mysql_config
brew unlink mariadb-connector-c
brew link mariadb

更新:バグはmysqlclientで修正されています( https://github.com/PyMySQL/mysqlclient-python/pull/177 を参照)が、まだリリースされていません

19
notFloran

解決する:

pip uninstall mysqlclient
pip install -U git+git://github.com/PyMySQL/mysqlclient-python
8
Danil