VSCode中Miniconda无法正常使用:PowerShell执行策略报错且CMD运行代码极慢
我完全能理解你这种用了三年的顺手环境突然崩掉的挫败感,先别慌,咱们一步步拆解问题来解决:
一、PowerShell执行策略报错的深层排查
你提到已经试过修改执行策略,但可能有些细节被忽略了,甚至系统存在更严格的限制:
必须以管理员身份修改执行策略
很多人改执行策略时忘了用管理员权限启动PowerShell,导致设置只对当前会话生效,或者被系统直接拒绝。请严格按这个步骤来:- 点击开始菜单,搜索
PowerShell,右键选择以管理员身份运行 - 输入以下命令并按提示输入
Y确认:
这个设置允许当前用户运行本地脚本,同时要求远程脚本必须签名,兼顾安全性和实用性。Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- 点击开始菜单,搜索
检查是否被组策略锁定执行策略
如果你重置电脑后问题还存在,大概率是系统级的组策略强制锁定了PowerShell的执行策略:- 按Win+R,输入
gpedit.msc打开组策略编辑器 - 依次展开:计算机配置 > 管理模板 > Windows组件 > Windows PowerShell
- 找到启用脚本执行,双击设置为已启用,然后在下拉菜单选允许本地脚本和远程签名脚本,确定后重启电脑。
如果你用的是Windows家庭版(没有组策略编辑器),可以通过注册表修改:
- 按Win+R,输入
regedit打开注册表编辑器 - 定位到:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell - 找到
ExecutionPolicy项,双击修改值为RemoteSigned - 如果没有这个项,右键空白处新建字符串值,命名为
ExecutionPolicy,值设为RemoteSigned - 重启电脑生效。
- 按Win+R,输入
VSCode终端的权限验证
有时候VSCode本身没有足够权限读取执行策略设置,可以试试:- 右键VSCode图标,选择以管理员身份运行,再打开终端测试conda命令
- 或者在VSCode设置里搜索
terminal.integrated.shellArgs.windows,确认没有额外的执行策略参数被强制添加。
二、CMD运行代码极慢的解决方法
你看到的conda run --live-stream --name env_1 python ...是VSCode终端集成自动生成的包装命令,这个命令会额外启动一层conda进程,导致运行速度骤降。咱们可以手动绕开这个机制:
手动激活环境再运行脚本
打开CMD终端后,不要直接点VSCode的"运行"按钮,而是手动执行:C:\Users\cedri\anaconda3\Scripts\activate.bat env_1等终端左侧出现
(env_1)确认环境激活后,再直接运行脚本:python "c:/Users/cedri/OneDrive/Documents/Marble project/test.py"这样就和你之前的快速运行逻辑完全一致,不会有额外的进程开销。
修改VSCode的Python运行配置
如果你习惯用VSCode的"运行"按钮,可以直接配置launch.json让它调用环境内的python.exe:- 打开你的测试脚本,点击右上角"运行和调试"按钮,选择"创建launch.json文件"
- 替换成如下配置(注意替换成你的实际环境路径):
{ "version": "0.2.0", "configurations": [ { "name": "Python: 当前文件", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "pythonPath": "C:/Users/cedri/anaconda3/envs/env_1/python.exe" } ] }
之后点击运行,VSCode会直接调用你环境里的python,无需经过conda run,速度就能回到之前的水平。
三、最后再做一次conda初始化验证
如果上面的PowerShell方法都试过了,再重新执行一次初始化:
- 以管理员身份打开PowerShell
- 先卸载当前的conda初始化配置:
conda init --reverse powershell - 然后重新初始化:
conda init powershell - 关闭所有PowerShell和VSCode窗口,重新打开后测试。
我知道你已经试了无数方法,但有时候就是这些容易被忽略的系统级限制在搞鬼,先从组策略/注册表的执行策略排查,应该能解决PowerShell的问题;CMD的速度问题只要绕开conda run的包装就能恢复正常。
内容来源于stack exchange

