在pip安装mysql-connector期间无法找到Protobuf include目录

wei*_*.lu 39 python mysql-connector-python

我提取mysql-connector-python代码,当我运行时,python ./setup.py build我收到以下错误:

Unable to find Protobuf include directory.
Run Code Online (Sandbox Code Playgroud)

pip install Protobuf 没用了

我怎么解决这个问题?

yut*_*487 107

我发现从版本2.2.3开始发生此错误.您可以使用版本2.1.6来避免此问题.

pip install mysql-connector==2.1.6

试试上面.

  • 版本2.1.6也可以在没有protobuf的情况下工作. (4认同)

小智 12

从2.2.3开始,Connector/Python使用C++扩展,使用Protobuf作为数据交换格式,与启用了X插件的MySQL服务器连接.

因此,您需要设置系统上安装Protobuf的位置(库,包含和protoc二进制路径).

要求

  • AC/C++编译器,如gcc
  • Protobuf C++(版本> = 2.6.0)
  • Python开发文件

安装

使用pip + pypi时有两种选择:

1)设置环境变量MYSQLXPB_PROTOBUF_INCLUDE_DIR,MYSQLXPB_PROTOBUF_LIB_DIRMYSQLXPB_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>'
Run Code Online (Sandbox Code Playgroud)

重要提示:请记住2.2.3是一个开发版本.


小智 9

我在我的Ubuntu 16.04上也有这个问题,最后可以通过以下步骤安装mysql-connector 2.2.3:

  1. 通过Ubuntu包管理器安装这些包:

    sudo apt install libprotobuf-dev protobuf-compiler
    
    Run Code Online (Sandbox Code Playgroud)
  2. 设置这些环境变量:

    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
    
    Run Code Online (Sandbox Code Playgroud)
  3. 通过Python包管理器安装mysql-connector包:

    pip install mysql-connector
    
    Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.