MariaDBを使用していて「pip install mysqlclient」でエラーが発生した


python3.6でmysqlclientをインストールしようとするとビルドエラーが発生した。

pip install mysqlclient
...
   building '_mysql' extension
   creating build/temp.linux-x86_64-3.6
   gcc -pthread -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -Dversion_info=(1,3,12,'final',0) -D__version__=1.3.12 -I/usr/include/mysql -I/usr/include/mysql/mysql -I/var/www/slopi/venv/include -I/root/.pyenv/versions/3.6.0/include/python3.6m -c _mysql.c -o build/temp.linux-x86_64-3.6/_mysql.o
   In file included from _mysql.c:29:0:
   /usr/include/mysql/mysql.h:440:3: warning: function declaration isn't a prototype [-Wstrict-prototypes]
      MYSQL_CLIENT_PLUGIN_HEADER
      ^
   /usr/include/mysql/mysql.h:585:1: warning: function declaration isn't a prototype [-Wstrict-prototypes]
    my_bool STDCALL mysql_embedded();
    ^
   gcc -pthread -shared -L/root/.pyenv/versions/3.6.0/lib -L/root/.pyenv/versions/3.6.0/lib build/temp.linux-x86_64-3.6/_mysql.o -L/usr/lib64/ -lmariadb -lnsl -lz -ldl -lm -lpthread -lssl -lcrypto -o build/lib.linux-x86_64-3.6/_mysql.cpython-36m-x86_64-linux-gnu.so
   /usr/bin/ld: cannot find -lmariadb
   collect2: error: ld returned 1 exit status
   error: command 'gcc' failed with exit status 1

「cannot find -lmariadb」とでているから「yum install MariaDB-devel」でパッケージ入れたけど一緒だった。

「yum install MariaDB-shared」も入れないといけなかった。

yum install MariaDB-devel MariaDB-shared

そして再度「pip install mysqlclient」を実行

pip install mysqlclient                      
Collecting mysqlclient
 Using cached mysqlclient-1.3.12.tar.gz
Installing collected packages: mysqlclient
 Running setup.py install for mysqlclient ... done
Successfully installed mysqlclient-1.3.12

うまくインストールできた(ヽ´ω`)


この投稿へのコメント

コメントはありません。

コメントを残す

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL