web-dev-qa-db-fra.com

Impossible de trouver le répertoire d’inclusion Protobuf lors de l’installation de mysql-connector over pip

J'ai tiré mysql-connector-python code et quand je lance python ./setup.py build Je reçois l’erreur suivante:

Unable to find Protobuf include directory.

pip install Protobuf était inutile

Comment puis-je résoudre ce problème?

39
wei.lu

J'ai constaté que cette erreur se produit depuis la version 2.2.3. Vous pouvez éviter ce problème en utilisant la version 2.1.6.

pip install mysql-connector==2.1.6

essayez ci-dessus.

107
yutaka2487

Depuis la version 2.2.3, Connector/Python utilise une extension C++ qui s'interface avec un serveur MySQL avec le plugin X activé, en utilisant Protobuf comme format d'échange de données.

Donc, vous devez configurer où Protobuf est installé sur votre système (la bibliothèque, les chemins binaires include et protocole).

Exigences

  • Un compilateur C/C++, tel que gcc
  • Protobuf C++ (version> = 2.6.0)
  • Fichiers de développement Python

Installation

Vous avez deux options lorsque vous utilisez pip + pypi:

1) Définir les variables d'environnement pour MYSQLXPB_PROTOBUF_INCLUDE_DIR, MYSQLXPB_PROTOBUF_LIB_DIR et MYSQLXPB_PROTOC.

2) Ajouter --install-option pour définir ces options lors de l’utilisation de 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: Gardez à l'esprit que 2.2.3 est une version de développement.

12
Nuno Mariz

J'ai également ce problème sur mon Ubuntu 16.04 et enfin, je peux installer mysql-connector 2.2.3 en procédant comme suit:

  1. Installez ces paquets via le gestionnaire de paquets Ubuntu:

    Sudo apt install libprotobuf-dev protobuf-compiler
    
  2. Définissez ces variables d'environnement:

    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
    
  3. Installez le paquet mysql-connector via le Python:

    pip install mysql-connector
    

J'espère que cela t'aides.

9
Long TRAN

Pour une raison quelconque, j'ai remarqué que pip install mysql-connector essayé d’installer la v2.2.3, ce que nous ne voulons pas. Par conséquent, j'ai spécifiquement entré pip install mysql-connector==2.1.6 et il s’est installé sans erreur. Notez également que j'utilise un virtualenv exécutant python 3.6.1. Je l'ai installé ici. Voici la documentation sur l'installation de modules spécifiques python qui m'ont aidé. https://docs.python.org/3/installing/index.html

3
Brian

Je suis sur WIN 7 64 bits, python 27.). Cette commande me convient parfaitement, particulièrement lorsque v2.2. est une version de développement.

pip install mysql-connector==2.1.4
1
Madhu Venkat

Pour installer protobuf avec les ports mac, j'ai fait ce qui suit

Installation de protobuf:

port install protobuf-cpp

Déclarer où est protobuf

export MYSQLXPB_PROTOBUF_LIB_DIR=/opt/local/lib export MYSQLXPB_PROTOC=/opt/local/bin/protoc export MYSQLXPB_PROTOBUF_INCLUDE_DIR=/opt/local/include

Installer le connecteur

pip install mysql-connector

0
Ricardo Ramírez

Sachez que 2.1.6 Connector échoue avec une erreur NoneType lors de la connexion à Django 1.11. Corrigé dans 2.1.7.

Lire: mysql-connector-python ne fonctionne pas avec Django 1.11 .

0
user4458727

Sur macOS, si vous utilisez 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
0
Maggyero