VSCode终端运行Python脚本提示“无法加载文件,因为在此系统上禁止运行”

老辰大大_3444

老辰大大_3444

2026-04-02

487人浏览

原创

powershell执行策略默认为restricted,禁止直接运行.py文件;解决方法是使用python script.py显式调用解释器,或切换终端为command prompt/git bash,或临时设置set-executionpolicy remotesigned -scope currentuser。

vscode终端运行python脚本提示“无法加载文件,因为在此系统上禁止运行”

PowerShell执行策略阻止Python脚本运行

这是Windows上PowerShell的默认安全限制,不是Python或VSCode的问题。PowerShell默认策略为Restricted,连本地.py文件都不允许直接执行——哪怕你只是在终端里敲python script.py,只要终端是PowerShell(VSCode默认就是),就可能触发这个错误。

常见错误信息长这样:无法加载文件 C:\path\script.py,因为在此系统上禁止运行脚本。

  • 检查当前策略:在VSCode终端里运行 Get-ExecutionPolicy,大概率返回 Restricted
  • 临时绕过(推荐调试用):在当前终端里运行 Set-ExecutionPolicy RemoteSigned -Scope CurrentUser,仅对当前用户生效,且不需管理员权限
  • 别用 Bypass 或全局 Unrestricted,风险高,而且VSCode重启后不一定保留
  • 该设置不影响Python解释器本身,只影响PowerShell是否允许“作为脚本”调用.py文件;而python script.py本质是调用python.exe并传参,严格来说不算“执行脚本”,但PowerShell旧版本(尤其是5.1)有时会误判

VSCode终端默认是PowerShell,不是CMD或Git Bash

很多人以为自己在“命令行”里,其实VSCode新开的集成终端默认启动的是PowerShell(尤其Win10/11),哪怕你装了Git Bash或WSL,它也不会自动切过去。

VSCode
VSCode

避免常见的 VSCode 错误——设置冲突、调试器配置和扩展冲突。

下载
  • 看终端标题栏右上角,写着 PowerShell 就确认了
  • 快捷切换方式:终端右上角「+」号旁下拉菜单,选 Command Prompt 或 Git Bash,它们没有执行策略限制
  • 永久改默认终端:按 Ctrl+Shift+P → 输入 Terminal: Select Default Profile → 选你要的shell(比如 Command Prompt)
  • 注意:改完后已打开的终端不会自动切换,要新建一个才生效

Python路径和shebang在Windows下基本无效

有人想加#!/usr/bin/env python或改文件关联来绕过,这在Windows PowerShell里没用。

  • PowerShell不读shebang,只认.ps1、.bat、.cmd等扩展名对应的执行策略
  • .py文件在Windows注册表里默认关联到python.exe,但PowerShell执行时仍走自己的策略检查,不是靠文件关联
  • 双击.py能运行,不代表终端里.\script.py能运行——后者被PowerShell当作脚本对待,前者是Windows Shell调用关联程序
  • 所以别折腾assoc或ftype,解决不了终端报错

最稳的日常方案:显式调用python.exe

不依赖PowerShell对.py文件的执行许可,直接让Python解释器干活,一劳永逸。

  • 在终端里统一用 python script.py 或 python .\script.py,而不是 .\script.py
  • VSCode里如果配置了launch.json,确保 configurations[].program 指向具体.py路径,而不是靠终端自动解析
  • 如果脚本需要传参,python script.py --arg value 安全可靠;而 .\script.py --arg value 依然可能被拦截
  • 这条规则也适用于其他可执行脚本(比如.js用node,.ts用ts-node),核心是“谁执行”比“执行谁”更关键

真正容易被忽略的是:PowerShell策略只管“谁来执行这个文件”,不管“文件里写的是什么”。所以哪怕你把Python脚本改成.txt再用python去读,它也不拦——但没人这么干。关键是别让PowerShell觉得自己在“运行脚本”。

Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

vscode

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2023.08.07

2015

5

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.23

2862

1

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

2023.10.13

976

3

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

2025.09.10

3219

7

js正则表达式
js正则表达式

php中文网为大家提供各种js正则表达式语法大全以及各种js正则表达式使用的方法,还有更多js正则表达式的相关文章、相关下载、相关课程,供大家免费下载体验。

2023.06.20

3976

8

js获取当前时间
js获取当前时间

JS全称JavaScript,是一种具有函数优先的轻量级,解释型或即时编译型的编程语言;它是一种属于网络的高级脚本语言,主要用于Web,常用来为网页添加各式各样的动态功能。js怎么获取当前时间呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.28

1255

5

js 字符串转数组
js 字符串转数组

js字符串转数组的方法:1、使用“split()”方法;2、使用“Array.from()”方法;3、使用for循环遍历;4、使用“Array.split()”方法。本专题为大家提供js字符串转数组的相关的文章、下载、课程内容,供大家免费下载体验。

2023.08.03

1618

5

js是什么意思
js是什么意思

JS是JavaScript的缩写,它是一种广泛应用于网页开发的脚本语言。JavaScript是一种解释性的、基于对象和事件驱动的编程语言,通常用于为网页增加交互性和动态性。它可以在网页上实现复杂的功能和效果,如表单验证、页面元素操作、动画效果、数据交互等。

2023.08.17

9463

11

js删除节点的方法
js删除节点的方法

js删除节点的方法有:1、removeChild()方法,用于从父节点中移除指定的子节点,它需要两个参数,第一个参数是要删除的子节点,第二个参数是父节点;2、parentNode.removeChild()方法,可以直接通过父节点调用来删除子节点;3、remove()方法,可以直接删除节点,而无需指定父节点;4、innerHTML属性,用于删除节点的内容。

2023.09.01

880

4

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程