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 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=' --install-option='--with-protobuf-lib-dir=' --install-option='--with-protoc='
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.
For some reason I noticed that pip install mysql-connector
tried to install v2.2.3, which we don't want. Therefore, I specifically entered pip install mysql-connector==2.1.6
and it installed without error. Please note too that I am using a virtualenv running python 3.6.1. I installed it there. Here is documentation on installing specific python modules that helped me. https://docs.python.org/3/installing/index.html
I am on WIN 7 64-bit, python 27. This command works for me and seems most appropriate, particularly when v2.2.3 is a development version.
pip install mysql-connector==2.1.4
To install protobuf with mac ports, I did the following
Installing protobuf:
port install protobuf-cpp
Declare where is protobuf
export MYSQLXPB_PROTOBUF_LIB_DIR=/opt/local/lib export MYSQLXPB_PROTOC=/opt/local/bin/protoc export MYSQLXPB_PROTOBUF_INCLUDE_DIR=/opt/local/include
Installing the connector
pip install mysql-connector
Please know that 2.1.6 Connector fails with NoneType
error when connecting to Django 1.11. Fixed in 2.1.7.
Read: mysql-connector-python fails to work with django 1.11.
On macOS, if you use Homebrew:
$ brew install protobuf $ export MYSQLXPB_PROTOC=/usr/local/opt/protobuf/bin/protoc $ export MYSQLXPB_PROTOBUF_INCLUDE_DIR=/usr/local/opt/protobuf/include/ $ export MYSQLXPB_PROTOBUF_LIB_DIR=/usr/local/opt/protobuf/lib/ $ pip3 install mysql-connector