Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Getting a "TypeError: Descriptors cannot be created directly" error when running zotify on Arch #147

Closed
willmaddrey opened this issue Jul 1, 2024 · 2 comments

Comments

@willmaddrey
Copy link

I tried reinstalling both zotify and zotify-git from the AUR, both gave me this issue whenever I run any zotify command.

`Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/usr/lib/python3.12/site-packages/zotify/main.py", line 10, in
from zotify.app import client
File "/usr/lib/python3.12/site-packages/zotify/app.py", line 1, in
from librespot.audio.decoders import AudioQuality
File "/usr/lib/python3.12/site-packages/librespot/init.py", line 3, in
from librespot.proto.Keyexchange_pb2 import BuildInfo, Platform, Product, ProductFlags
File "/usr/lib/python3.12/site-packages/librespot/proto/Keyexchange_pb2.py", line 31, in
_descriptor.EnumValueDescriptor(
File "/usr/lib/python3.12/site-packages/google/protobuf/descriptor.py", line 920, in new
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot 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).

More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
`

@hunkyburrito
Copy link

This seems to be due to python-librespot using an outdated python-protobuf version (kokarare1212/librespot-python#130).

As the error message states, the easiest workaround for running zotify would be setting the environment variable (i.e. PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION=python zotify ...).

@willmaddrey
Copy link
Author

@hunkyburrito that did the trick, thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants