web-dev-qa-db-ja.com

pipを介したmysql-connectorのインストール中にProtobuf includeディレクトリが見つかりません

mysql-connector-pythonコードを取得し、python ./setup.py buildを実行すると、次のエラーが表示されます。

Unable to find Protobuf include directory.

pip install Protobufは役に立たなかった

この問題を解決するにはどうすればよいですか?

39
wei.lu

このエラーはバージョン2.2.3以降で発生することがわかりました。バージョン2.1.6を使用すると、この問題を回避できます。

pip install mysql-connector==2.1.6

上記を試してください。

107
yutaka2487

2.2.3の時点で、Connector/Pythonは、Protobufをデータ交換形式として使用して、Xプラグインを有効にしたMySQLサーバーとインターフェースするC++拡張機能を使用します。

そのため、システム上のProtobufのインストール場所(ライブラリ、インクルード、およびprotocバイナリパス)を設定する必要があります。

要件

  • GccなどのC/C++コンパイラ
  • Protobuf C++(バージョン> = 2.6.0)
  • Python開発ファイル

インストール

Pip + pypiを使用する場合、2つのオプションがあります。

1)MYSQLXPB_PROTOBUF_INCLUDE_DIRMYSQLXPB_PROTOBUF_LIB_DIR、およびMYSQLXPB_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>'

重要: 2.2.3は開発リリースであることに注意してください。

12
Nuno Mariz

私はUbuntu 16.04にもこの問題があり、最終的に次の手順でmysql-connector 2.2.3をインストールできます。

  1. Ubuntuパッケージマネージャーを介してこれらのパッケージをインストールします。

    Sudo apt install libprotobuf-dev protobuf-compiler
    
  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
    
  3. Pythonパッケージマネージャーを使用してmysql-connectorパッケージをインストールします。

    pip install mysql-connector
    

お役に立てれば。

9
Long TRAN

何らかの理由で、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

3
Brian

私はWIN 7 64-bit、python 27を使用しています。このコマンドは私にとってはうまく機能し、特にv2.2.が開発中の場合に最適です版。

pip install mysql-connector==2.1.4
1
Madhu Venkat

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

0

2.1.6コネクタは、Django 1.11への接続時にNoneTypeエラーで失敗することに注意してください。 2.1.7で修正されました。

読み取り: mysql-connector-pythonはDjango 1.11で動作しません

0
user4458727

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
0
Maggyero