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
- A C/C++ compiler, such as gcc
- Protobuf C++ (version >= 2.6.0)
- Python development files
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.
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
来源:https://stackoverflow.com/questions/43029672/unable-to-find-protobuf-include-directory-during-install-mysql-connector-over-pi