使用yfinance下载雅虎财经股价遇OperationalError数据库文件无法打开
解决yfinance OperationalError无法打开数据库文件的方案
- 指定自定义缓存目录
yfinance默认会在系统特定目录创建SQLite缓存数据库,若该路径存在权限或访问限制,可手动指定一个你完全拥有读写权限的文件夹作为缓存目录:
import yfinance as yf # 替换为你有权限的本地文件夹路径,比如D盘下的专用缓存文件夹 yf.set_tz_cache_location("D:/yfinance_cache") # 正常执行数据下载 data = yf.download("AAPL", start="2023-01-01", end="2024-01-01")
- 禁用缓存功能
直接跳过缓存环节,避免数据库文件相关问题:
# 单次下载时禁用缓存 data = yf.download("AAPL", start="2023-01-01", end="2024-01-01", cache=False) # 或者全局禁用缓存 yf.enable_cache(False)
- 修复SQLite依赖
yfinance依赖SQLite处理缓存,若系统内置SQLite存在异常,可重新安装指定版本的SQLite相关包:
在Anaconda环境中执行:
conda install sqlite=3.41.2
或通过pip安装:
pip install pysqlite3-binary
安装完成后重启Python环境再测试。
- 安装yfinance开发版
稳定版可能存在已知bug,尝试安装最新开发版:
pip install git+https://github.com/ranaroussi/yfinance.git
- 手动清理旧缓存文件
找到yfinance默认缓存目录(Windows下通常为C:\Users\[你的用户名]\AppData\Local\yfinance或%TEMP%\yfinance),删除目录内所有.db格式文件,再重新运行下载代码。
内容的提问来源于stack exchange,提问作者Karin_89
相关产品推荐
相关产品推荐

