-
Notifications
You must be signed in to change notification settings - Fork 960
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 error 'Couldn't read cache at: .cache' with example code #579
Comments
(note: I am a newbie to open-source contributing, feedback on my correctness would be appreciated) This is expected behaviour for (initial) runs of Spotipy as far the current version allows. Line 310 of spotipy/oauth2.py illustrates that Spotipy throws this warning if a cache file for tokens has not yet been instantiated. This is a relatively new feature (see #567) to allow explicit specification of cache files to be optional, hence probably why you can't find other documentation. This shouldn't prevent your code from working. On repeat executions, the error goes away regardless (unless you keep changing the working directory...!); otherwise, I guess if you instantiate the file |
This is true @Quizz1Cal, it is just a warning so don't worry about it. Probably that your current environment (repl.it) doesn't allow storing new files. Can you open an issue on their side to ask if this is expected? In the meantime, let us know if this issue prevents you from using any other features |
That may be it, I ended up manually doing the oauth which took a bit more time but ended up working, thanks. It did continue on every run though so I was unable to use this library. Thanks for making it though if it worked in my enviroment it definitely would have been a great help but not the fault of you then but on their end. |
I had the exact same question! I still didn't figure it out. Any solution would be appreciated. |
Got the same issue. Just run it in sudo (linux) or Administrator (windows) and it will create .cache file the same directory it was run. |
Probably not a very good idea. It certainly works, but using admin perms to just run a simple script is not recommended. |
Hey! I know the problem is 2 years old but I solved it on my Raspberry PI. The problem was folder permission! Working directly in home folder is not good idea :S |
This worked for me
|
can you please elaborate? stuck here as well. the .cache file exists for me too... |
TL;DR try substituting the MemoryCacheHandler for the default CacheFileHandler Like others, I ran into the the read/write cache errors. In my case, I was using Spotipy from a Django management command. When I ran it from via manage.py inside the project folder it worked fine, but when I scheduled it as a cronjob I'd get the cache errors. Mostly it was just an annoyance -- hundreds of error messages in the log every time the command ran. But it did occasionally prevent execution of the routine. The problem appeared to be that cron by default runs from a root folder that I don't have sufficient permissions for on my shared server. After reading a whole lot of suggested fixes I first tried to force cron to run the command from the project folder. When I couldn't make that work, I tried using the DjangoSessionCacheHandler. After fumbling around with the code, I finally got it installed, but got an error saying it required a position argument. I assume it was telling me I needed to configure the session middleware somehow, but that was outside the scope of my knowledge. (Someone who knows better than me can fill in details here.) I then tried the MemoryCacheHandler and, so far, it has worked like a charm. Here's the relevant code:
Hope this helps others who have encountered this problem. |
Alternatively you can create your own cache handler to store the token in a database for example |
Describe the bug
Using the example auth code I get the error 'Couldn't read cache at: .cache' I've tried looking around but can't find a reference to this specific error anywhere. I'm using the Online IDE repl.it but it seems users have used it with no trouble before looking at other projects
Your code
import spotipy
from spotipy.oauth2 import SpotifyOAuth
scope = "user-library-read"
sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope))
results = sp.current_user_saved_tracks()
for idx, item in enumerate(results['items']):
track = item['track']
print(idx, track['artists'][0]['name'], " – ", track['name'])
Environment:
The text was updated successfully, but these errors were encountered: