IDLE中使用seaborn.load_dataset加载planets数据集报错如何解决
报错原因
sns.load_dataset() 默认从seaborn官方GitHub仓库拉取数据集文件,触发报错基本是三类原因:
- 网络连通问题:国内网络无法正常访问GitHub的raw资源,触发连接超时、拒绝访问、SSL证书错误
- seaborn版本过旧:本地安装的seaborn版本太低,内置数据集索引缺少
planets的资源配置 - 本地缓存损坏:之前下载数据集时中途断网,导致本地缓存的文件残缺,读取失败
解决方法
按优先级从高到低试以下方案:
方案1:替换国内镜像源加载(最省事)
直接把数据集拉取地址替换为国内镜像源,不需要代理就能正常加载,参考代码:
import seaborn as sns # 配置国内镜像地址加载数据集 planets = sns.load_dataset( 'planets', data_home_url='https://mirrors.tuna.tsinghua.edu.cn/github-raw/mwaskom/seaborn-data/master/' )
方案2:手动放置数据集到本地缓存
- 先运行代码查看seaborn默认的本地缓存目录:
import seaborn as sns print(sns.utils.get_data_home())
- 下载
planets.csv文件放到上述打印出的目录中,之后再运行原加载代码会直接读本地文件,不需要发网络请求。
方案3:升级seaborn版本
如果是版本不匹配导致的问题,直接在命令行执行升级命令:
pip install --upgrade seaborn
升级完成后重启IDLE再运行代码即可。
方案4:直接用pandas读取本地文件
如果不想折腾网络配置,直接把planets.csv放到代码文件同级目录,用pandas读取和load_dataset返回的结果完全一致:
import pandas as pd planets = pd.read_csv('planets.csv')
临时排障小技巧:如果报错是SSL证书问题,可以在导入seaborn前加两行代码临时关闭证书校验(仅本地测试用,不建议生产环境使用)
import ssl ssl._create_default_https_context = ssl._create_unverified_context
内容的提问来源于stack exchange,提问作者JXP56
相关产品推荐
相关产品推荐

