powershell无法激活python venv的主因是默认restricted执行策略;应运行set-executionpolicy remotesigned -scope currentuser验证并生效,同时启用vscode的python.terminal.activateenvironment设置,并确保用.\venv\scripts\activate.ps1正确调用。

PowerShell 无法激活 Python venv,90% 是执行策略(Execution Policy)在拦路,不是脚本坏了、路径错了,也不是 Python 装得不对。
Get-ExecutionPolicy 返回 Restricted 就是罪魁祸首
你在 VSCode 终端或 Windows PowerShell 里输入 .\venv\Scripts\Activate.ps1,看到红色报错“无法加载文件……因为在此系统上禁止运行脚本”,第一反应不该是重装 venv 或换 Python 版本。先确认策略:
- 执行
Get-ExecutionPolicy—— 如果输出是Restricted,问题就定位了 - 执行
Get-ExecutionPolicy -Scope CurrentUser—— 看当前用户的策略是否也被锁死 -
Restricted是 Windows 默认值,它连本地写的.ps1都不放行,和签名、路径、权限位都无关
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser 是安全又够用的解法
别碰 Unrestricted 或 Bypass,它们会让杀毒软件报警,也违背最小权限原则。真正该跑的是:
-
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(普通用户权限即可,不用管理员) - 执行后关掉当前终端,新开一个 PowerShell 或 VSCode 终端再试
- 验证是否生效:再次运行
Get-ExecutionPolicy -Scope CurrentUser,应返回RemoteSigned - 注意:不要漏掉
-Scope CurrentUser,否则可能提示“拒绝访问”或要求管理员提权
VSCode 里激活了但 pip 还装到全局?检查 python.terminal.activateEnvironment
右下角显示 ./venv/Scripts/python.exe ≠ 终端真用了这个环境。常见假象:
SkillSub Pro - Python 题解与代码注释双功能技能功能概述SkillSub Pro - Python 题解与代码注释双功能技能是一项面向实际任务的技能,主要用于SkillSub Pro 是一个 Python 题解生成与代码注释的 双功能合体技能 ,专为学生、算法学习者和开发者设计;✅ 一个技能,两种用途 :;核心要点📝 题解模式 :输入题目/题号,自动生成完整 Python 题解(含详细注释、解题思路、复杂度分析);💬 注释模式 :输入 Python 代码,自动添加详细中。它将相关步骤、
-
pip install requests后,python -c "import requests"在终端里报错 ModuleNotFoundError - 编辑器里 import 不标红,但终端运行就失败
- 根本原因是 VSCode 没自动帮你跑
Activate.ps1
必须手动开启配置项:python.terminal.activateEnvironment 设为 true(默认是 false)。改完重启终端,再验证:
-
pip -V输出路径里必须含venv字样 -
python -c "import sys; print(sys.prefix)"返回路径必须指向你的venv目录
别忘了 . 和反斜杠:.\venv\Scripts\Activate.ps1 缺一不可
PowerShell 要求显式声明“我要执行当前目录下的脚本”,所以:
- 不能只写
venv\Scripts\Activate.ps1(会被当命令名,找不到) - 不能漏掉前导点号:
.表示“当前目录”,.\才是 PowerShell 的执行前缀 - 反斜杠
\是 Windows 路径分隔符,不能换成正斜杠/(PowerShell 不认) - 如果路径含空格(比如
My Project\venv),要用引号包住:.\'My Project\venv\Scripts\Activate.ps1'
最易被忽略的一点:执行策略改了,VSCode 设置也开了,但终端还是没激活——很可能你开的是旧终端实例,没重启。关掉所有集成终端标签页,再 Ctrl+Shift+` 新开一个,再试。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










