title: TypeError: Descriptors cannot not be created directly
body: <p>I tried to install <a href="https://docs.ray.io/en/latest/" rel="noreferrer">Ray</a>, but it gave an error:</p>
  <pre class="lang-none prettyprint-override"><code>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 &gt;= 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).
  </code></pre>
  <p>I tried to solve the problem and downgraded <em>protobuf</em>:</p>
  <pre class="lang-none prettyprint-override"><code>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
  </code></pre>
  <p>But still the problem persists in Ray, <a href="https://en.wikipedia.org/wiki/TensorFlow" rel="noreferrer">TensorFlow</a>, and <a href="https://en.wikipedia.org/wiki/Keras" rel="noreferrer">Keras</a>. My application isn't working any more. How can I fix it?</p>