在pycharm中使用powershell7解决conda,ohmyposh报错的问题

在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
相关推荐
zzzzzz3102 小时前
当产品经理说这个很简单:我用Python自动化处理奇葩需求的实战指南
python·pycharm·产品经理
摇滚侠7 天前
IDEA 创建 Java 项目 手动整合 SSM 框架
java·ide·intellij-idea
霸道流氓气质7 天前
Trae IDE 新手入门指南
ide
爱就是恒久忍耐7 天前
VSCode里如何比较2个branch
ide·vscode·编辑器
你是个什么橙7 天前
Python入门学习1:安装配置开发环境——Python或Annaconda,Pycharm
python·学习·pycharm
砍材农夫7 天前
python环境|conda安装和使用(1)
开发语言·后端·python·conda
bloglin999997 天前
vscode中可视化的合并分支,在“合并编辑器中解析”中“与基线进行比较”是什么意思
ide·vscode·编辑器
终将老去的穷苦程序员7 天前
IntelliJ IDEA 的安装教程
java·ide·intellij-idea
匆匆整棹还7 天前
mamba的安装和版本对应
conda
m沐沐7 天前
【计算机视觉】OpenCV 模板匹配银行卡数字识别---下
人工智能·python·opencv·计算机视觉·pycharm·numpy