Skip to content

从 cmd 换到 PowerShell 之后,conda activate 经常不可用。不是环境没装上,是 PowerShell 还没接上 conda 的 hook。

先初始化 ​

在 PowerShell 里:

powershell
conda init powershell

关掉窗口再开一个。正常的话,提示符前面会出现 (base) 之类的环境名。激活时要写完整命令:

powershell
conda activate myenv

和 cmd 里有时直接敲环境名不同。

脚本被禁止运行 ​

重启后可能看到:

text
无法加载文件 ...\profile.ps1,因为在此系统上禁止运行脚本。

Windows 默认执行策略是 Restricted。conda 的 hook 是一份 .ps1,所以被拦住。

用管理员 PowerShell:

powershell
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

再开一个普通窗口。RemoteSigned 允许本地脚本,远程脚本仍要签名,比 Unrestricted 合适。只想对当前用户改、不动整机策略:

powershell
Set-ExecutionPolicy -Scope CurrentUser RemoteSigned

No command 'conda conda' ​

这是 conda 4.6.8 到 4.6.11 附近的老 bug,hook 把 conda 写重了。新版本基本见不到。若正好落在这个区间,把 base 里的 conda 换成该区间之外的版本,再跑一次 conda init powershell。

不必一上来就降级。先 conda --version,确认真是那段,再动手。

测试开发工程师 · 专注自动化与系统架构 | 邮箱: hansblog@atumsoul.win