powershell执行策略、项目路径受限及python安装位置共同导致access denied;应优先设置set-executionpolicy remotesigned -scope currentuser、迁移项目至非同步/非系统目录(如d:\projects)、使用--user参数安装升级pip,而非盲目提权。

PowerShell执行策略拦住了.py脚本?
VSCode默认终端是PowerShell,而Windows默认禁止运行本地.ps1脚本——但很多Python项目会用.ps1做构建或启动包装(比如run.ps1),这时报Access Denied或cannot be loaded because running scripts is disabled,根本不是Python或文件权限问题。
只需对当前用户放开策略,无需管理员权限:
- 在VSCode终端里运行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser - 关掉现有终端,按
Ctrl+Shift+`新建一个,再试 - 验证是否生效:
Get-ExecutionPolicy -Scope CurrentUser应返回RemoteSigned
别碰LocalMachine或Unrestricted——公司电脑上组策略可能随时覆盖,还可能触发安全告警。
Python脚本本身被系统路径锁死?
常见于项目放在C:\Users\XXX\OneDrive、C:\Users\XXX\Downloads或C:\Program Files下。这些位置受Windows实时保护、同步锁或UAC虚拟化限制,哪怕你是管理员,open('config.json', 'w')也可能直接Access Denied。
真正该做的是迁移路径,不是提权:
- 把项目移到干净目录,例如:
D:\projects\myapp或C:\dev\myapp - 在VSCode里按
Ctrl+Shift+P→ 输入Developer: Toggle Developer Tools,看Console里报错路径是否含OneDrive或Downloads - 检查终端当前路径:
pwd或cd回车,确认不在受限目录下
强行给OneDrive文件夹加“Everyone”写权限,只会让同步服务反复冲突,改完保存又回滚。
pip install或python -m pip upgrade报WinError 5?
这类错误明确指向Python安装在C:\Program Files\PythonXX这类系统目录,普通用户无权覆盖其中文件(如pip-*.dist-info目录)。这不是VSCode的问题,而是Python安装方式埋的坑。
优先绕过,而非硬刚管理员权限:
- 用
pip install --user装包,所有模块进%APPDATA%\Python\PythonXX\site-packages - 升级pip本身:先用
python -m pip install --user --upgrade pip,避免动系统目录 - 如果必须全局升级(极少数工具链要求),右键VSCode快捷方式 → 属性 → 兼容性 → 勾选“以管理员身份运行此程序”,然后**仅通过这个快捷方式启动VSCode**
注意:code --install-extension在管理员模式下仍大概率失败,得手动下载.vsix,再用“从VSIX安装”导入。
WSL中用\wsl$路径打开项目导致Access Denied?
这是Windows+WSL双环境最隐蔽的坑。你在资源管理器里打开\wsl$\Ubuntu\home\user\project,再用VSCode打开它——表面能编辑,实际所有保存、Git操作、chmod都经Windows ACL转发,Linux权限模型完全失效。
唯一可靠路径是原生Linux文件系统:
- 装官方
Remote - WSL扩展 - 按
Ctrl+Shift+P→ 输入Remote-WSL: New Window - 在新窗口中运行:
code /home/user/project
别在/mnt/c/下chown -R $USER——NTFS没有真实UID/GID,强行改会破坏挂载元数据,后续git status可能全红。
真正容易被忽略的是:Access Denied往往不是单一原因,而是PowerShell策略 + 路径隔离 + Python安装位置三者叠加。先查终端类型和报错路径,再决定动不动管理员权限——多数时候,挪个文件夹比调UAC弹窗更省时间。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











