example - python sql mysql
No se puede encontrar el directorio de inclusiĆ³n de Protobuf durante la instalaciĆ³n de mysql-connector over pip (8)
A partir de la versión 2.2.3, Connector / Python usa una extensión C ++ que interactúa con un servidor MySQL con el complemento X habilitado, utilizando Protobuf como formato de intercambio de datos.
Por lo tanto, debe configurar dónde está instalado Protobuf en su sistema (las rutas binarias de biblioteca, include y protoc).
Requerimientos
- Compilador AC / C ++, como gcc
- Protobuf C ++ (versión> = 2.6.0)
- Archivos de desarrollo de Python
Instalación
Tienes dos opciones cuando usas pip + pypi:
1) Establezca las variables de entorno para MYSQLXPB_PROTOBUF_INCLUDE_DIR
, MYSQLXPB_PROTOBUF_LIB_DIR
y MYSQLXPB_PROTOC
.
2) Agregue --install-option
para configurar estas opciones al usar 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>''
Importante: tenga en cuenta que 2.2.3 es una versión de desarrollo.
Saqué el código mysql-connector-python
y cuando ejecuto python ./setup.py build
el siguiente error:
Unable to find Protobuf include directory.
pip install Protobuf
fue inútil
¿Como puedó resolver esté problema?
En macOS, si usas 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
Encontré que este error ocurre desde la versión 2.2.3. Puedes evitar este problema usando la versión 2.1.6.
pip install mysql-connector==2.1.6
Intenta arriba.
Estoy en WIN 7 64-bit , python 27. Este comando funciona para mí y parece más apropiado, particularmente cuando v2.2.3 es una versión de desarrollo.
pip install mysql-connector==2.1.4
Para instalar protobuf con puertos mac, hice lo siguiente
Instalación de protobuf:
port install protobuf-cpp
Declara donde 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
Instalando el conector
pip install mysql-connector
Por alguna razón, me di cuenta de que pip install mysql-connector
intentó instalar v2.2.3, lo cual no queremos. Por lo tanto, pip install mysql-connector==2.1.6
específicamente pip install mysql-connector==2.1.6
y se instaló sin errores. Tenga en cuenta también que estoy usando un virtualenv ejecutando python 3.6.1. Lo instalé allí. Aquí está la documentación sobre la instalación de módulos de python específicos que me ayudaron. https://docs.python.org/3/installing/index.html
También tengo este problema en mi Ubuntu 16.04 y finalmente puedo instalar mysql-connector 2.2.3 con los siguientes pasos:
Instale estos paquetes a través del gestor de paquetes de Ubuntu:
sudo apt install libprotobuf-dev protobuf-compiler
Establecer estas variables de entorno:
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
Instale el paquete del conector mysql a través del administrador de paquetes de Python:
pip install mysql-connector
Espero que esto ayude.
Tenga en cuenta que el conector 2.1.6 falla con el error NoneType
al conectarse a Django 1.11. Se corrige en 2.1.7.