yfinance下载无数据且无报错 技术问题求助
问题分析与排查方向
你的脚本在PC端卡在yf.download()步骤,仅输出start,结合VSCode交互窗口正常但直接运行文件异常的表现,可能的原因及解决方向如下:
1. 网络/代理限制
yfinance依赖网络请求获取美股数据,PC端可能存在网络拦截:
- 检查PC是否处于代理、VPN或内网环境,yfinance默认不会自动读取系统代理,需手动配置:
在脚本开头添加代理设置:import os os.environ['HTTP_PROXY'] = 'http://你的代理地址:端口' os.environ['HTTPS_PROXY'] = 'http://你的代理地址:端口' - 暂时关闭PC的防火墙、杀毒软件,测试是否是网络请求被拦截。
2. VSCode运行环境不匹配
虽然你配置了Python3.11.2虚拟环境,但VSCode的「运行Python文件」模式可能未正确激活该环境:
- 点击VSCode左下角的Python版本标识,确认当前选中的是你创建的3.11.2虚拟环境,而非系统Python或其他环境。
- 手动在终端激活虚拟环境后,用命令
python 你的脚本名.py运行,验证是否正常。
3. 标准输出缓冲与阻塞问题
直接运行文件时,Python标准输出默认是块缓冲,且yf.download可能因网络慢长时间阻塞:
- 修改
print语句强制刷新缓冲:print('start', flush=True),确认后续步骤是否真的未执行。
4. 依赖库兼容性或缺失
虽然yfinance版本一致,但Python3.11.2与3.11.1的依赖库可能存在细微差异:
- 在PC的虚拟环境中重新安装所有依赖:
pip uninstall -y pandas yfinance pip install pandas yfinance - 检查
requests、beautifulsoup4等yfinance依赖库的版本,确保和笔记本端一致。
5. 目录权限问题
脚本需要写入./Data目录,PC端可能无该目录的写入权限:
- 手动创建
Data目录,或修改脚本为绝对路径写入(比如df.to_csv(f"C:/Users/你的用户名/Documents/{ticker}.csv"))测试。
内容的提问来源于stack exchange,提问作者Martin Biber
相关产品推荐
相关产品推荐

