为何VS Code无法记住Poetry创建的项目虚拟环境选择?
问题原因与解决办法
为什么Poetry环境选择无法持久保存?
VS Code对conda和Poetry环境的识别逻辑存在差异:
- conda环境是集中式管理(默认存放在conda的
envs目录),VS Code会自动扫描这类系统/用户级的环境目录,选择后会把关联信息存入全局或项目配置,下次打开可直接读取。 - Poetry的
.venv是项目本地独立存储的,默认情况下VS Code不会自动将这个本地环境与项目做持久关联,除非手动把环境路径写入项目的VS Code配置文件。另外,从poetry shell启动code .时,虽然shell内激活了环境,但VS Code不一定会自动把临时环境关联写入项目配置,导致每次打开都要重新检测并提示选择。
解决办法
手动写入项目配置
在项目根目录的.vscode/settings.json文件中添加Python解释器路径配置(没有该文件则新建):{ "python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python" }(Windows系统将路径改为
${workspaceFolder}\.venv\Scripts\python.exe)
配置完成后,每次打开项目VS Code会直接使用指定环境,不再弹出选择提示。选择环境后确认配置保存
弹出环境选择提示并选中./.venv后,检查项目的.vscode/settings.json是否自动生成了上述配置项。如果未生成,可能是VS Code缺少写入权限,手动创建文件添加配置即可。确认Poetry环境激活状态
在poetry shell中执行which python(Windows系统用where python),确认输出路径是项目.venv下的Python可执行文件。如果路径不符,说明poetry shell未正确激活环境,检查Poetry配置是否正确(比如是否执行过poetry config virtualenvs.in-project true)。
内容的提问来源于stack exchange,提问作者Robert Alexander
相关产品推荐
相关产品推荐

