求助:tvDatafeed使用中ChromeDriver手动安装配置及VS Code终端执行异常问题
解决tvDatafeed中ChromeDriver手动安装与配置问题
我来帮你一步步搞定这个ChromeDriver的配置难题,你的报错核心是驱动路径没正确指定,再加上VS Code终端的小问题导致自动下载流程走不通,我们先解决手动配置的核心问题,再顺便修复终端执行的问题:
一、先完成ChromeDriver的手动匹配与放置
1. 确认Chrome浏览器版本
打开Chrome,点击右上角三个点 → 设置 → 关于Chrome,查看你的Chrome版本(比如118.0.5993.71),重点记住版本号的前三位(比如118.0.5993),驱动版本必须和这个主版本完全一致。
2. 下载对应版本的ChromeDriver
下载和你Chrome主版本匹配的ChromeDriver,解压后会得到一个chromedriver.exe文件。
3. 放置驱动文件(二选一即可)
- 方式1:放到Python的Scripts目录
找到你Python39的安装路径(比如C:\Program Files\Python39),进入Scripts文件夹,把chromedriver.exe放进去。这样系统环境变量能直接找到它,后续不用手动写路径。 - 方式2:放到项目目录
把chromedriver.exe直接放到你的脚本所在目录(比如f:\TraidingViewTA),后续初始化时指定路径即可。
二、在tvDatafeed中手动指定驱动路径
修改你的初始化代码,把chromedriver_path参数设置为你刚才放置的chromedriver.exe的完整路径:
from tvDatafeed import TvDatafeed username = "你的TradingView用户名" password = "你的TradingView密码" # 情况1:如果用方式1(放到Python Scripts目录),直接写文件名即可 tv = TvDatafeed(username, password, chromedriver_path="chromedriver.exe") # 情况2:如果用方式2(放到项目目录),用绝对路径示例 # tv = TvDatafeed(username, password, chromedriver_path="f:\\TraidingViewTA\\chromedriver.exe") # 情况3:也可以用相对路径(项目目录下) # tv = TvDatafeed(username, password, chromedriver_path="./chromedriver.exe")
这样就能绕开自动下载的流程,直接使用你手动准备好的驱动。
三、顺便修复VS Code终端无法执行脚本的问题
你的工作区配置目前用的是Command Prompt,可能调整一下就能正常执行脚本:
- 确认VS Code左下角的Python解释器是你安装的Python39(点击版本号可以切换)。
- 打开终端后,尝试直接执行脚本:
cd f:\TraidingViewTA python tv1.py
如果还是不行,可以把终端默认Profile换成PowerShell,修改你的settings.json:
{ "folders": [ { "path": "..\\Psample" } ], "settings": { "terminal.explorerKind": "external", "terminal.integrated.defaultProfile.windows": "PowerShell" } }
调整后终端应该能正常执行脚本,后续如果需要自动下载驱动的话,也能正常输入'y'确认了。
为什么你之前会出现那些报错?
- 第一个
TypeError是因为你传了chromedriver_path=None,而自动下载又没成功,导致代码找不到驱动文件的路径。 - 后面的
UnboundLocalError是驱动初始化失败后,代码尝试调用driver.quit()但driver变量根本没创建出来,本质还是驱动路径未正确指定导致的连锁问题。
内容的提问来源于stack exchange,提问作者pg daszzz




