Spotipy调用对象方法时无限挂起问题求助
解决Spotipy查询卡住无返回的问题
以下是针对该问题的实用排查和解决方法:
排查网络环境
网络代理、防火墙或者VPN经常会拦截Spotify API的请求。尝试切换到手机热点,或者关闭代理软件后重新运行代码,确认是否是网络环境导致的问题。给Spotipy添加超时配置
默认情况下Spotipy未设置请求超时,会导致请求无限挂起。初始化Spotify对象时添加超时和重试参数:import spotipy from spotipy.oauth2 import SpotifyClientCredentials client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret) sp = spotipy.Spotify( client_credentials_manager=client_credentials_manager, requests_timeout=10, # 设置10秒超时,超时后抛出异常 retries=1 )这样既不会无限挂起,也能通过异常信息进一步定位问题。
直接测试API连通性
绕过Spotipy库,用curl手动调用Spotify API验证:- 先获取访问令牌:
curl -X POST "https://accounts.spotify.com/api/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id=你的客户端ID&client_secret=你的客户端密钥" - 使用拿到的
access_token调用接口:curl "https://api.spotify.com/v1/artists/1Xyo4u8uXC1ZmMpatF05PJ/top-tracks?market=US" \ -H "Authorization: Bearer 你的access_token"
如果这个请求也失败,说明是网络或API权限问题;如果成功,则是Spotipy库的版本兼容性问题。
- 先获取访问令牌:
调整Spotipy版本
版本不兼容可能导致请求异常。尝试卸载重装指定版本:pip uninstall spotipy -y pip install spotipy==2.23.0 # 该版本稳定性较高,也可尝试最新版更新SSL证书配置
Python环境的SSL证书异常会导致HTTPS连接失败,更新certifi库修复:pip install --upgrade certifi
内容的提问来源于stack exchange,提问作者Neel Shejwalkar
相关产品推荐
相关产品推荐

