在pycharm中使用powershell7解决conda,ohmyposh报错的问题
pycharm会默认使用系统的powershell5,在terminal中就会报错,尤其是安装了ohmyposh, conda 后
验证powershell使用版本方法:
在 PyCharm 终端中运行:
shell
powershell$PSVersionTable
shell
你可能会看到类似:
PSVersion 5.1.xxxxx # Windows PowerShell
而在你的系统 PowerShell 中运行同样命令,可能看到:
PSVersion 7.x.x # PowerShell Core
pycharm中配置路径:
单独配置一个 pycharm-terminal.ps1 给pycharm用
settings-> terminal-> shell path中配置如下:
注意是 pwsh.exe 而不是 powershell.exe
shell
pwsh.exe -NoExit -File "C:\Users\Administrator\Documents\pycharm-terminal.ps1"
pycharm-terminal.ps1内容:
shell
# 禁用 Conda 插件
$env:CONDA_NO_PLUGINS = "true"
# 导入 PSReadLine
Import-Module PSReadLine -ErrorAction SilentlyContinue
# 根据 PowerShell 版本选择正确的 Oh My Posh 初始化方式
if ($PSVersionTable.PSVersion.Major -ge 7) {
# PowerShell 7+
oh-my-posh init pwsh --config "C:\Users\Administrator\AppData\Local\Packages\ohmyposh.cli_96v55e8n804z4\LocalCache\Local\oh-my-posh\themes\aliens.omp.json" | Invoke-Expression
} else {
# Windows PowerShell 5.x
oh-my-posh init powershell --config "C:\Users\Administrator\AppData\Local\Packages\ohmyposh.cli_96v55e8n804z4\LocalCache\Local\oh-my-posh\themes\aliens.omp.json" | Invoke-Expression
}
# Conda 初始化
If (Test-Path "D:\ProgramData\miniconda3\Scripts\conda.exe") {
(& "D:\ProgramData\miniconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
}
可以通过
shell
notepad $PROFILE
读取默认的powershell_profile配置:
shell
# 确保 PSReadLine 模块被导入
Import-Module PSReadLine
# 使用明确的路径初始化 Oh My Posh,避免环境变量问题
oh-my-posh init pwsh --config "C:\Users\Administrator\AppData\Local\Packages\ohmyposh.cli_96v55e8n804z4\LocalCache\Local\oh-my-posh\themes\aliens.omp.json" | Invoke-Expression
# Conda 初始化
#region conda initialize
# !! Contents within this block are managed by 'conda init' !!
If (Test-Path "D:\ProgramData\miniconda3\Scripts\conda.exe") {
(& "D:\ProgramData\miniconda3\Scripts\conda.exe" "shell.powershell" "hook") | Out-String | ?{$_} | Invoke-Expression
}
#endregion