Win10 VS终端运行black.exe报Access is denied拒绝访问如何解决
Windows 10运行Black命令报Access is denied错误解决
问题背景
通过pip install black安装Python代码格式化工具Black后,在VS Code集成终端执行black Untitled-1.py时抛出以下报错,设备为Windows 10系统,无第三方杀毒软件运行:
Program 'black.exe' failed to run: Access is deniedAt line:1 char:1 + black Untitled-1.py + ~~~~~~~~~~~~~~~~~~~. At line:1 char:1 + black Untitled-1.py + ~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ResourceUnavailable: (:) [], ApplicationFailedException + FullyQualifiedErrorId : NativeCommandFailed
解决步骤
按以下顺序逐一排查,绝大多数场景下前3步就能解决问题:
- 修复black.exe的文件权限
执行pip show black,拿到返回结果中Location字段的路径,进入该路径同级的Scripts文件夹,找到black.exe文件。右键打开「属性-安全」面板,确认当前登录的Windows账号对该文件拥有读取、执行权限,如果权限缺失,点击「编辑」给当前账号勾选「完全控制」权限,保存后重试命令。 - 调整PowerShell执行策略
VS Code默认集成终端为PowerShell时,过严的执行策略会拦截可执行文件运行。以管理员身份打开系统PowerShell,执行Set-ExecutionPolicy RemoteSigned,在确认提示中输入Y回车生效,重启VS Code终端后再试。 - 绕过exe直接调用Python模块运行
不需要纠结exe权限问题,直接用Python模块调用的方式执行Black即可,命令格式为python -m black Untitled-1.py,该方式会直接走Python解释器加载Black模块,完全跳过exe的权限校验,适配绝大多数权限异常场景。 - 修复环境变量路径优先级问题
执行where black查看系统识别到的Black可执行文件路径,如果返回路径和你当前使用的Python环境下的Scripts路径不匹配,说明存在旧版本路径残留、路径优先级错误。把当前Python环境对应的Scripts目录路径移动到系统PATH变量的最靠前位置,重启终端后重试。 - 管理员权限重装Black
执行pip uninstall black -y卸载现有版本,右键点击终端选择「以管理员身份运行」后,重新执行pip install black完成安装,避免普通权限下pip写入文件时丢失执行权限。
内容的提问来源于stack exchange,提问作者rsc05
相关产品推荐
相关产品推荐

