cast_control
cast_control copied to clipboard
Get the error below
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 :confused:
@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 https://github.com/alexdelorenzo/cast_control/issues/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