vscode需手动配置poetry虚拟环境解释器路径才能正常工作;必须用poetry env info --path获取根目录后拼接/bin/python(macos/linux)或/scripts/python.exe(windows),通过python: select interpreter→enter interpreter path输入完整路径,并在.settings.json中硬编码该路径,且重启vscode窗口而非仅重载。

VSCode 本身不安装 Poetry,它只负责调用你系统里已装好的 poetry;真正要做的,是让 VSCode 找到并正确使用 Poetry 创建的虚拟环境里的 python 解释器——否则 import 标红、debug 失败、Pylance 提示全丢。
poetry install 后 VSCode 还标红 import?先看右下角解释器路径
现象:终端里 poetry run python -c "import requests" 成功,但编辑器里 import requests 画红线,运行报 ModuleNotFoundError。
根本原因几乎总是:VSCode 当前选的不是 Poetry 环境里的 python,而是系统 Python、旧 venv 或另一个项目环境。
验证方式:点 VSCode 窗口右下角显示的解释器路径,确认它是否包含 virtualenvs/your-project-name- 这样的字符串。如果不是,说明没对齐。
必须手动拼出真实解释器路径,不能只复制 poetry env info --path 输出
poetry env info --path 返回的是虚拟环境根目录(如 /Users/me/Library/Caches/pypoetry/virtualenvs/myproj-abc123-py3.11),它本身不是可执行文件。
真实解释器路径需在此基础上补全:
- macOS/Linux:
/path/from/env-info/bin/python - Windows:
\path\from\env-info\Scripts\python.exe
注意:
- 务必在项目根目录下运行
poetry env info --path,否则返回的是其他项目的路径 - 别信
which python或poetry shell后终端里显示的路径——可能被pyenv、shell alias 或 PATH 干扰 - 输错路径(比如漏掉
/bin/python)时,VSCode 会静默 fallback 到上一个解释器,且不报错
Python: Select Interpreter 必须选 “Enter interpreter path”
按 Ctrl+Shift+P(Windows/Linux)或 Cmd+Shift+P(macOS),输入并选择 Python: Select Interpreter。
关键动作:不要从下拉列表里“猜”,那个列表默认不扫描 Poetry 缓存目录(~/Library/Caches/pypoetry/virtualenvs/ 或 %LOCALAPPDATA%\pypoetry\Cache\virtualenvs\),几乎不可能出现 Poetry 环境。
必须点击 Enter interpreter path,然后粘贴拼好的完整路径,例如:/Users/me/Library/Caches/pypoetry/virtualenvs/myproj-abc123-py3.11/bin/python。
.vscode/settings.json 里硬编码路径才能防丢配置
每次切换 Git 分支、重装依赖、甚至重启 VSCode,都可能丢失解释器选择。靠手点不可靠。
在项目根目录创建或编辑 .vscode/settings.json,加入这一行(路径必须和 poetry env info --path 输出完全一致):
"python.defaultInterpreterPath":"/full/path/to/venv/bin/python"
保存后,必须关闭并重新打开整个 VSCode 窗口(不是 “Developer: Reload Window”),否则 Pylance 和 debugger 仍缓存旧环境的类型信息与路径映射。
Poetry 的核心作用是管理依赖和环境,VSCode 只负责消费它——但这个“消费”过程没有任何自动发现机制,所有路径都得人眼核对、手动拼写、写死配置。最容易被跳过的环节,就是漏掉 /bin/python 后缀,或者重启时只点了重载窗口而非彻底关掉再开。











