alexdelorenzo / cast_control

📺 Control Chromecasts from Linux and D-Bus

Home Page:https://alexdelorenzo.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Get the error below

bonelifer opened this issue · comments

I get the error below


Traceback (most recent call last):
  File "/home/william/.local/bin/cast_control", line 5, in <module>
    from cast_control.app.cli import cli
  File "/home/william/.local/lib/python3.8/site-packages/cast_control/app/cli.py", line 11, in <module>
    from ..base import RC_NO_CHROMECAST, LOG_LEVEL, NAME, \
  File "/home/william/.local/lib/python3.8/site-packages/cast_control/base.py", line 7, in <module>
    from pychromecast.controllers.media import MediaStatus
  File "/home/william/.local/lib/python3.8/site-packages/pychromecast/__init__.py", line 14, in <module>
    from . import socket_client
  File "/home/william/.local/lib/python3.8/site-packages/pychromecast/socket_client.py", line 23, in <module>
    from . import cast_channel_pb2
  File "/home/william/.local/lib/python3.8/site-packages/pychromecast/cast_channel_pb2.py", line 33, in <module>
    _descriptor.EnumValueDescriptor(
  File "/home/william/.local/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 755, in __new__
    _message.Message._CheckCalledFromGeneratedFile()
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).

I faced the same error 😕

@bonelifer You can bypass this error by typing

export PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python

on your console waiting for a fix

Thanks for opening an issue, @bonelifer.

@DodoLeDev and @bonelifer, if you're still encountering this error, can you please post the results from this command:

python3 -m pip freeze

Thanks

Also had this error with the latest release (+ also #15), don't have a pip freeze output that reflects it available (meanwhile downgraded these packages), but what basically happens is the requirements for the protobuf package only specify a lower limit, so it installs protobuf 4.21.12. Just like the zeroconf (linked issue), you can downgrade it, like mentioned in the workarounds at the bottom of OP's post. I downgraded to 3.20.3 (this should be more efficient than using the python implementation) and everything works