問題
執行命令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