Windows10下VSCode使用Python3.9虚拟环境执行pip list显示全局包问题
虚拟环境激活后pip仍显示全局安装包的问题原因及修复方案
错误原因
- 激活脚本未实际生效:Windows系统下不同终端对应的激活脚本不通用,你使用的
activate.bat仅适用于CMD终端,若在PowerShell终端执行该脚本,不会修改当前会话的环境变量,虚拟环境激活不会生效;另外如果执行激活脚本的终端,和运行pip list的终端不是同一个实例,也会出现该问题。激活成功的CMD终端前缀会显示(.venv)标识,无该标识则代表激活失败。 - 环境变量优先级异常:系统全局Python的路径在PATH变量中排序高于虚拟环境路径,即使激活了虚拟环境,调用pip时仍会优先匹配全局的pip程序。可执行
pip --version验证pip的实际路径,若输出路径不包含.venv\Scripts则属于该情况。 - VSCode终端未同步环境配置:在VSCode界面选择虚拟环境解释器后,已经打开的终端不会自动更新环境配置,仍会沿用旧的全局环境变量,只有新建的终端才会自动加载选中的虚拟环境。
修复步骤
- 如果你使用CMD终端:进入news文件夹后执行
.venv\Scripts\activate.bat,确认终端前缀出现(.venv)后再执行pip list - 如果你使用PowerShell终端:进入news文件夹后执行
.venv\Scripts\Activate.ps1,若提示脚本运行权限不足,先执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,输入Y确认后再执行激活脚本 - 若使用VSCode内置终端:选择完虚拟环境解释器后,关闭所有已打开的终端,点击「终端-新建终端」,新终端会自动激活虚拟环境,直接运行
pip list即可
内容的提问来源于stack exchange,提问作者katcode
相关产品推荐
相关产品推荐

