我提取mysql-connector-python
代码,当我运行python ./setup.py build
时出现以下错误:
Unable to find Protobuf include directory.
pip install Protobuf
没用了
我该如何解决这个问题?
答案 0 :(得分:107)
我发现自2.2.3版以来发生了此错误。 您可以使用版本2.1.6来避免此问题。
pip install mysql-connector==2.1.6
尝试上面。
答案 1 :(得分:12)
从2.2.3开始,Connector / Python使用C ++扩展,该扩展与启用了X插件的MySQL服务器连接,使用Protobuf作为数据交换格式。
因此,您需要设置系统上安装Protobuf的位置(库,包含和protoc二进制路径)。
<强>要求强>
<强>安装强>
使用pip + pypi时有两种选择:
1)为MYSQLXPB_PROTOBUF_INCLUDE_DIR
,MYSQLXPB_PROTOBUF_LIB_DIR
和MYSQLXPB_PROTOC
设置环境变量。
2)使用pip时添加--install-option
来设置这些选项:
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是开发版本。
答案 2 :(得分:9)
我的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
通过Python包管理器安装mysql-connector包:
pip install mysql-connector
希望这有帮助。
答案 3 :(得分:3)
出于某种原因,我注意到pip install mysql-connector
尝试安装v2.2.3,我们不想要。因此,我特意输入了pip install mysql-connector==2.1.6
并且安装时没有错误。请注意我正在使用运行python 3.6.1的virtualenv。我在那里安装了它。以下是有关安装特定python模块的文档,这对我有帮助。 https://docs.python.org/3/installing/index.html
答案 4 :(得分:1)
我在 WIN 7 64位,python 27.这个命令对我有用,看起来最合适,特别是当 v2.2.3 是开发版本时。< / p>
pip install mysql-connector==2.1.4
答案 5 :(得分:0)
要安装带有mac端口的protobuf,我做了以下
安装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
答案 6 :(得分:0)
请注意,连接到Django 1.11时,2.1.6连接器失败并出现NoneType
错误。已在2.1.7中修复。
答案 7 :(得分:0)
在macOS上,如果您使用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