VSCode Python开发:如何在venv激活前预执行命令解决脚本限制
VS Code 自动配置PowerShell执行策略解决方案
以下方案无需管理员权限,不会修改系统全局/用户级执行策略,所有改动仅在VS Code创建的PowerShell进程内生效,关闭终端后自动失效,符合企业安全管控要求。
方案1:全局用户配置(个人使用,全项目生效)
- 按
Ctrl+Shift+P打开VS Code命令面板,输入Preferences: Open User Settings (JSON)回车,打开用户级settings.json配置文件 - 在配置对象中添加如下字段:
"terminal.integrated.profiles.windows": { "PowerShell": { "source": "PowerShell", "args": [ "-Command", "Set-ExecutionPolicy Unrestricted -Scope Process" ] } }, "terminal.integrated.defaultProfile.windows": "PowerShell"
- 保存配置后,所有新建的VS Code集成PowerShell终端都会自动执行执行策略修改命令,手动激活venv、调试会话自动拉起终端执行
Activate.ps1时都不会再报脚本禁用错误。
日常使用PowerShell 7+(跨平台版本,程序名为pwsh.exe)的话,将上面配置中
source字段的值改为"PowerShell Core"即可。
方案2:项目级共享配置(团队统一使用,无需每人单独配置)
适合所有受企业脚本执行策略限制的团队成员共用:
- 在项目根目录新建
.vscode文件夹,在文件夹内创建settings.json文件 - 将方案1中的相同配置写入该文件
- 将
.vscode/settings.json提交到项目代码仓库,其他成员拉取代码后用VS Code打开项目,会自动应用该终端配置,不需要手动修改个人设置。
配置说明
- 配置中添加的启动参数会在PowerShell终端进程创建时第一时间执行,优先级高于后续所有脚本操作,覆盖手动激活venv、Python扩展调试自动触发venv激活等所有场景
- 之前手动在单独终端执行命令的方式无法覆盖调试场景,原因是VS Code启动调试会话时会创建全新的独立终端进程,不会复用之前手动操作过的终端会话,将预执行命令绑定到终端启动参数才能覆盖所有自动创建的终端场景
-Scope Process参数保证执行策略修改仅对当前终端进程生效,不会修改系统层面的任何安全配置,不会触发企业安全规则告警- 配置不需要依赖第三方扩展,安装VS Code基础版本即可生效
内容的提问来源于stack exchange,提问作者Hugh Eisenman
相关产品推荐
相关产品推荐

