VS Code的venv虚拟环境仅psycopg2报ModuleNotFoundError需调整哪些配置
问题判定
从报错信息中的依赖加载路径C:\Users\djgra\AppData\Local\Programs\Python\Python36\lib\site-packages可以直接确认:你运行代码时调用的是系统全局的Python 3.6解释器,没有加载项目对应的venv虚拟环境,并非包检索逻辑异常。
VS Code控制虚拟环境加载的核心设置
python.defaultInterpreterPath:分为全局配置和工作区配置两个层级,工作区配置优先级更高,该设置指定默认加载的Python解释器路径,需要配置为你项目venv目录下的可执行文件路径,Windows环境下通常为./venv/Scripts/python.exepython.terminal.activateEnvironment:控制VS Code新建终端时是否自动激活当前选定的虚拟环境,默认值为true,如果被误改为false,终端内运行pip、python命令都会调用全局环境- 调试配置
launch.json中的python字段:如果使用F5调试运行代码,需要确保该字段没有写死全局Python路径,优先使用VS Code当前选定的解释器
完整解决步骤
- 按下
Ctrl+Shift+P调出命令面板,输入Python: Select Interpreter - 在可选列表中找到你项目venv目录下的
Scripts\python.exe并选中,如果列表未展示该选项,手动点击「浏览」找到对应文件即可 - 关闭VS Code当前所有已打开的终端,重新打开一个终端,确认终端行首出现
(venv)的激活标识 - 在激活虚拟环境的终端内执行
pip install psycopg2-binary安装对应依赖(Windows环境下直接安装psycopg2容易出现编译报错,优先安装预编译的psycopg2-binary版本) - 重新运行代码即可正常识别虚拟环境内的所有依赖
特殊情况适配
如果你使用Code Runner插件运行代码,需要额外修改Code Runner配置:
打开设置找到code-runner.executorMap项,编辑其中的python配置为"python": "$pythonPath",避免Code Runner固定调用全局Python解释器。
内容的提问来源于stack exchange,提问作者GrayLiterature
相关产品推荐
相关产品推荐

