TypeError: 記述子を直接作成することはできません 質問する

TypeError: 記述子を直接作成することはできません 質問する

インストールしようとしましたレイしかし、エラーが発生しました:

TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
 1. Downgrade the protobuf package to 3.20.x or lower.
 2. Set PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python (but this will use pure-Python parsing and will be much slower).

問題を解決しようとしてダウングレードしましたプロトコルバッファ:

Name: protobuf
Version: 3.20.0
Summary: Protocol Buffers
Home-page: https://developers.google.com/protocol-buffers/
Author:
Author-email:
License: BSD-3-Clause
Location: d:\opencv\lib\site-packages
Requires:
Required-by: ray, tensorboard, tensorflow

しかしレイの問題は依然として残っている。テンソルフロー、 そしてケラスアプリケーションが動作しなくなりました。どうすれば修正できますか?

ベストアンサー1

時々、プロトコルバッファパッケージがユーザーの関与なしにインストールされる可能性があります。 この場合、適用できる解決策は 2 つあります。 以下の解決策のいずれかを試してください。これで問題が解決するはずです。

解決策1:

ダウングレードすることができますプロトコルバッファプラグイン、

pip install protobuf==3.20.*

requirements.txtまたは、最後のパッケージとしてファイルに追加することもできます。これは、以前にインストールされたパッケージを上書きするためです。プロトコルバッファパッケージ。

...
protobuf==3.20.*

解決策2:

以下の環境変数を設定できます。

export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

エラーの説明によると、これはプログラムのパフォーマンスに影響を与える可能性があります。

しかし、これは純粋なPython解析を使用するため、はるかに遅くなります。


参考文献:

おすすめ記事