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?
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.
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
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.
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:
Installez ces paquets via le gestionnaire de paquets Ubuntu:
Sudo apt install libprotobuf-dev protobuf-compiler
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
Installez le paquet mysql-connector via le Python:
pip install mysql-connector
J'espère que cela t'aides.
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
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
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
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 .
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