Я вытащил код mysql-connector-python
, и когда я запустил python ./setup.py build
, я получаю следующую ошибку:
Unable to find Protobuf include directory.
pip install Protobuf
бесполезен
Как я могу решить эту проблему?
Я вытащил код mysql-connector-python
, и когда я запустил python ./setup.py build
, я получаю следующую ошибку:
Unable to find Protobuf include directory.
pip install Protobuf
бесполезен
Как я могу решить эту проблему?
Я обнаружил, что эта ошибка возникает с версии 2.2.3. Вы можете избежать этой проблемы, используя версию 2.1.6.
pip install mysql-connector==2.1.6
попробуйте выше.
Начиная с версии 2.2.3, Connector/Python использует расширение С++, которое взаимодействует с сервером MySQL с включенным плагином X, используя Protobuf в качестве формата обмена данными.
Итак, вам нужно настроить, где Protobuf установлен в вашей системе (библиотеки, include и protoc двоичные пути).
Требования
Установка
У вас есть два варианта при использовании pip + pypi:
1) Установите переменные среды для MYSQLXPB_PROTOBUF_INCLUDE_DIR
, MYSQLXPB_PROTOBUF_LIB_DIR
и MYSQLXPB_PROTOC
.
2) Добавьте --install-option
, чтобы установить эти параметры при использовании 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>'
Важно: Имейте в виду, что версия 2.2.3 является релизом разработки.
У меня также есть эта проблема на моем Ubuntu 16.04 и, наконец, можно установить mysql-connector 2.2.3 со следующими шагами:
Установите эти пакеты через диспетчер пакетов Ubuntu:
sudo apt install libprotobuf-dev protobuf-compiler
Установите эти переменные среды:
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
Установите пакет mysql-connector через диспетчер пакетов Python:
pip install mysql-connector
Надеюсь, что это поможет.
По какой-то причине я заметил, что pip install mysql-connector
попытался установить v2.2.3, чего мы не хотим. Поэтому я специально ввел pip install mysql-connector==2.1.6
, и он был установлен без ошибок. Также обратите внимание, что я использую virtualenv для запуска python 3.6.1. Я установил его там. Вот документация по установке конкретных модулей python, которые мне помогли. https://docs.python.org/3/installing/index.html
Я нахожусь в WIN 7 64-bit, python 27. Эта команда работает для меня и кажется наиболее подходящей, особенно когда v2.2.3 - это версия для разработки.
pip install mysql-connector==2.1.4
Чтобы установить protobuf с портами mac, я сделал следующее
Установка protobuf:
port install protobuf-cpp
Объявить, где protobuf
export MYSQLXPB_PROTOBUF_LIB_DIR=/opt/local/lib
export MYSQLXPB_PROTOC=/opt/local/bin/protoc
export MYSQLXPB_PROTOBUF_INCLUDE_DIR=/opt/local/include
Установка разъема
pip install mysql-connector
Обратите внимание, что при подключении к Django 1.11 с ошибкой NoneType
сбой 2.1.6. Исправлено в 2.1.7.