tamland / python-tidal

Python API for TIDAL music streaming service
GNU Lesser General Public License v3.0
406 stars 110 forks source link

AttributeError: 'session' #57

Closed dennisklad closed 3 years ago

dennisklad commented 3 years ago

Hi, sorry I am a newbie.

I am getting this error by executing the example code snippet.

"AttributeError: partially initialized module 'tidalapi' has no attribute 'session' (most likely due to a circular import)" What am I doing wrong and can't import tidalapi.Session()?

morguldir commented 3 years ago

Can you post the exact code you are running?

nawordar commented 1 year ago

After updating to the git version of tidalapi and mopidy-tidal, I am running into the same problem, with the following terminal output:

lip 12 10:29:51 cezdro mopidy[1183304]: Traceback (most recent call last):
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/mopidy/__main__.py", line 129, in main
lip 12 10:29:51 cezdro mopidy[1183304]:     extension.setup(registry)
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/mopidy_tidal/__init__.py", line 37, in setup
lip 12 10:29:51 cezdro mopidy[1183304]:     from .backend import TidalBackend
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/mopidy_tidal/backend.py", line 9, in <module>
lip 12 10:29:51 cezdro mopidy[1183304]:     from tidalapi import Config, Quality, Session
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/tidalapi/__init__.py", line 4, in <module>
lip 12 10:29:51 cezdro mopidy[1183304]:     from .media import Track, Video  # noqa: F401
lip 12 10:29:51 cezdro mopidy[1183304]:     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/tidalapi/media.py", line 34, in <module>
lip 12 10:29:51 cezdro mopidy[1183304]:     class Media:
lip 12 10:29:51 cezdro mopidy[1183304]:   File "/home/cezdro/.local/pipx/venvs/mopidy/lib/python3.11/site-packages/tidalapi/media.py", line 63, in Media
lip 12 10:29:51 cezdro mopidy[1183304]:     self, session: tidalapi.session.Session, media_id: Optional[str] = None
lip 12 10:29:51 cezdro mopidy[1183304]:                    ^^^^^^^^^^^^^^^^
lip 12 10:29:51 cezdro mopidy[1183304]: AttributeError: partially initialized module 'tidalapi' has no attribute 'session' (most likely due to a circular import)

It is strange how it could ever work for anyone, as there is no from __future__ import annotations line and tidalapi.session module imports tidalapi.media resulting in the circular import

EDIT: It is caused a recent change introduced in 019ce3d. After running the following commands, Mopidy-Tidal runs fine:

pipx uninject mopidy tidalapi
pipx inject mopidy git+https://github.com/tamland/python-tidal.git@052e27a50d90cc51535303caf1f97db675361528

Weird that this issue is from 2021…

tehkillerbee commented 1 year ago

EDIT: It is caused a recent change introduced in 019ce3d. After running the following commands, Mopidy-Tidal runs fine:

Yes, I think one of the latest changes to tidalapi broke Mopidy-Tidal. If possible, please add this as an issue there so we can address it ASAP.