Не удалось найти каталог Protobuf include во время установки mysql-connector over pip

Я вытащил код mysql-connector-python, и когда я запустил python ./setup.py build, я получаю следующую ошибку:

Unable to find Protobuf include directory.

pip install Protobuf бесполезен

Как я могу решить эту проблему?

Ответ 1

Я обнаружил, что эта ошибка возникает с версии 2.2.3. Вы можете избежать этой проблемы, используя версию 2.1.6.

pip install mysql-connector==2.1.6

попробуйте выше.

Ответ 2

Начиная с версии 2.2.3, Connector/Python использует расширение С++, которое взаимодействует с сервером MySQL с включенным плагином X, используя Protobuf в качестве формата обмена данными.

Итак, вам нужно настроить, где Protobuf установлен в вашей системе (библиотеки, include и protoc двоичные пути).

Требования

  • Компилятор C/С++, такой как gcc
  • Protobuf С++ (версия >= 2.6.0)
  • Файлы разработки Python

Установка

У вас есть два варианта при использовании 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 является релизом разработки.

Ответ 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
    

Надеюсь, что это поможет.

Ответ 4

По какой-то причине я заметил, что 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

Ответ 5

Я нахожусь в WIN 7 64-bit, python 27. Эта команда работает для меня и кажется наиболее подходящей, особенно когда v2.2.3 - это версия для разработки.

pip install mysql-connector==2.1.4

Ответ 6

Чтобы установить 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