PowerShell 实现 conda 懒加载
问题
执行命令conda init powershell
会在 profile.ps1
中添加conda初始化的命令。
即使用户不需要用到conda,也会初始化conda环境,拖慢PowerShell的启动速度。
解决方案
本文展示了如何实现conda的懒加载,默认不加载conda环境,只有在用户执行conda命令时才加载。
(1) Path环境变量添加conda路径
- 添加conda3的本地路径:D:\code\miniconda3
- 添加conda3的脚本路径:D:\code\miniconda3\Scripts
(2) 注销conda初始化命令
- 进入文件夹:C:\Users<user_name>\Documents\WindowsPowerShell
- 编辑
profile.ps1
文件,注释或删除conda初始化代码
#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
# If (Test-Path "D:\code\miniconda3\Scripts\conda.exe") {
# (& "D:\code\miniconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
# }
#endregion
(3) 封装conda命令,实现懒加载
- 进入文件夹:C:\Users<user_name>\Documents\WindowsPowerShell
- 编辑
Microsoft.PowerShell_profile.ps1
文件,添加代码。
function Load-Conda {If (Test-Path "D:\code\miniconda3\Scripts\conda.exe") {(& "D:\code\miniconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression}conda @args
}Set-Alias conda Load-Conda