I pulled mysql-connector-python code and when I run python ./setup.py build I get the following error:
Unable to find Protobuf include directory.
pip install Protobuf was useless
How can I solve this problem?
I found that this error occurs since version 2.2.3. You can avoid this issue using version 2.1.6.
pip install mysql-connector==2.1.6
try above.
As of 2.2.3, Connector/Python uses a C++ extension that interfaces with a MySQL server with the X plugin enabled, using Protobuf as data interchange format.
So, you need to set up where Protobuf is installed on your system (the library, include and protoc binary paths).
Requirements
Installation
You have two options when using pip + pypi:
1) Set environment variables for MYSQLXPB_PROTOBUF_INCLUDE_DIR, MYSQLXPB_PROTOBUF_LIB_DIR and MYSQLXPB_PROTOC.
2) Add --install-option to set these options when using pip:
shell> python install mysql-connector --install-option='--with-protobuf-include-dir=<path>' --install-option='--with-protobuf-lib-dir=<path>' --install-option='--with-protoc=<path>'
Important: Keep in mind that 2.2.3 is a development release.
I also have this issue on my Ubuntu 16.04 and finally can install mysql-connector 2.2.3 with the following steps:
Install these packages via the Ubuntu package manager:
sudo apt install libprotobuf-dev protobuf-compiler
Set these environment variables:
export MYSQLXPB_PROTOC=/usr/bin/protoc
export MYSQLXPB_PROTOBUF_INCLUDE_DIR=/usr/include/google/protobuf
export MYSQLXPB_PROTOBUF_LIB_DIR=/usr/lib/x86_64-linux-gnu
Install the mysql-connector package via the Python package manager:
pip install mysql-connector
Hope this helps.