You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode中SQLFluff扩展调用错误Python版本导致执行报错的求助

VSCode中SQLFluff扩展调用错误Python版本导致执行报错的求助

折腾好几天了,实在没辙来求助大家!我在MacBook上用VSCode的sqlfluff做SQL格式化和代码检查,结果遇到了Python版本不匹配的问题,SQLFluff死活不肯用我指定的版本,每次保存SQL文件就报错。

先说说我的配置和遇到的问题:
在VSCode的settings.json里,我已经明确设置了默认Python解释器和SQLFluff作为SQL的格式化工具:

"[sql]": {
    "editor.defaultFormatter": "dorzey.vscode-sqlfluff" // Use SQLFluff formatter
},
"editor.formatOnSave": true,
"workbench.settings.applyToAllProfiles": [],
"python.defaultInterpreterPath": "/Library/Frameworks/Python.framework/Versions/3.12/bin/python3.12" // Enable auto-formatting on save

但每次我保存SQL文件时,都会弹出Traceback报错,核心问题是:SQLFluff在调用/opt/homebrew/lib/python3.11这个我完全不想用的Python版本,而不是我设置的3.12。报错信息如下:

Traceback (most recent call last): 
    File "/opt/homebrew/bin/sqlfluff", line 8, in <module> 
       sys.exit(cli())
       ^ ^^^^ 
    File "/opt/homebrew/lib/python3.11/site-packages/click/core.py", line 1130, in __call__
      return self.main(*args, **kwargs)
        ^^^^^^^^^^^^^^^ ^^^^^^^^^^^ 
    File "/opt/homebrew/lib/python3.11/site-packages/click/core.py", line 1055, in main
      rv = self.invoke(ctx)
          ^^^^^^^^^^^^^^^^ 
    File "/opt/homebrew/lib/python3.11/site-packages/click/core.py", line 1657, in invoke
      return _process_result(sub_ctx.command.invoke(sub_ctx)) 
             ^^^^^^ ^^^^^^^^^^ ^^^^^^^^^^ ^^^^^ 
    File "/opt/homebrew/lib/python3.11/site-packages/click/core.py", line 1404, in invoke
      return ctx.invoke(self.callback, **ctx.params)
            ^^^^^ ^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^ 
    File "/opt/homebrew/lib/python3.11/site-packages/click/core.py", line 760, in invoke
       return __callback(*args, **kwargs)
               ^^^^^^^^^...

我已经尝试过的解决办法:

  • 完全卸载并重装了VSCode的SQLFluff扩展
  • 在VSCode中通过Python: Select Interpreter命令,分别选择了Python 3.12的真实路径和对应的虚拟环境

再补充下终端里的测试结果,让大家更清楚情况:
终端里我的Python版本是正确的,指向我设置的3.12:

nir@mac % python -V
Python 3.12.8
nir@mac % which python 
python: aliased to python3
nir@mac % which python3
/Library/Frameworks/Python.framework/Versions/3.12/bin/python3

但SQLFluff的情况就不对了,它是Homebrew安装的,绑定了Python 3.11,版本也不是我需要的3.3.0:

nir@mac % which sqlfluff 
/opt/homebrew/bin/sqlfluff
nir@mac % sqlfluff version 
2.3.5

另外我的pyproject.toml里已经明确指定了依赖的SQLFluff版本是3.3.0:

dependencies = [
    "sqlfluff==3.3.0",
...
]

现在我就是搞不懂,为什么VSCode里的SQLFluff扩展不肯用我指定的Python 3.12和对应的3.3.0版本SQLFluff,非要去调用Homebrew的旧版本?有没有大佬知道怎么强制让它用我想要的Python环境呀?

备注:内容来源于stack exchange,提问作者Nir

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.14 14:38:04