当前位置: 首页 > news >正文

解决scoop安装的anaconda无法在商店版powershell使用的问题

1) 不依赖 profile,先在当前会话“临时启用” conda

$CondaRoot = 'D:\Scoop\apps\anaconda3\current\App'
$env:PATH = "$CondaRoot\condabin;$CondaRoot\Scripts;$CondaRoot;$CondaRoot\Library\bin;$env:PATH"# 关键点:**用点号 dot-source** 加载官方 hook(不要用 &)
. "$CondaRoot\shell\condabin\conda-hook.ps1"# 立即验证
Get-Command conda
conda -V
conda info
  • 如果这一步就能成功显示版本/信息,说明问题只是“启动时没正确加载 hook”。继续第 2 步把它写入 profile。
  • 如果依旧不行,先看 Get-Command conda 输出了什么(是否有 Function conda);如果没有,往下做第 3 步“强力最小函数”。

2) 用“官方 hook”固化到 profile(替换写入)

把 hook 和 PATH 固化到 PowerShell 7 专属 profile当前用户-所有主机的 profile;我们用覆盖写入,避免之前追加了很多次导致混乱。

$CondaRoot = 'D:\Scoop\apps\anaconda3\current\App'# 确保目录 & 文件存在
$files = @($PROFILE, $PROFILE.CurrentUserAllHosts)
foreach ($f in $files) {$dir = Split-Path -Parent $fif (!(Test-Path $dir)) { New-Item -ItemType Directory -Path $dir | Out-Null }
}# 统一写入内容(覆盖 Set-Content)
$content = @"
# ===== Conda bootstrap (Store pwsh 7) =====
`$CondaRoot = "$CondaRoot"
`$env:PATH = "$CondaRoot\condabin;$CondaRoot\Scripts;$CondaRoot;$CondaRoot\Library\bin;`$env:PATH"
. "$CondaRoot\shell\condabin\conda-hook.ps1"
# 可选:启动即激活 base,取消下一行注释
# conda activate base
# ===== End =====
"@Set-Content -Path $PROFILE -Value $content -Encoding UTF8
Set-Content -Path $PROFILE.CurrentUserAllHosts -Value $content -Encoding UTF8# 执行策略(仅当前用户)
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force# 立刻加载并验证
. $PROFILE
Get-Command conda
conda -V

重点:conda-hook.ps1 要用「点号 .」加载,否则不会把 conda 函数注入当前会话。这是很多人卡住的地方。


3) 如果官方 hook 仍然无效,用“最小函数”兜底

(极少见,但商店版 pwsh 在某些环境里 hook 不生效时,这招最稳。)

$CondaRoot = 'D:\Scoop\apps\anaconda3\current\App'
$min = @"
# ===== Conda minimal fallback =====
`$CondaRoot = "$CondaRoot"
`$env:PATH = "$CondaRoot\condabin;$CondaRoot\Scripts;$CondaRoot;$CondaRoot\Library\bin;`$env:PATH"
function conda { & "$CondaRoot\condabin\conda.bat" @Args }
# conda activate base
# ===== End =====
"@
Set-Content -Path $PROFILE -Value $min -Encoding UTF8
. $PROFILE
conda -V

4) 两个快速自检

# A) 确认不是以 -NoProfile 启动
$PSCommandPath  # 通常为空;若你用的是带 -NoProfile 的快捷方式,请改回默认# B) 看看当前会话里 conda 的解析
Get-Command conda -All
$env:PATH -split ';' | ? { $_ -match 'anaconda3|conda|Scoop' }

仍不行?三件事再确认

  1. 你确实在 PowerShell 7(pwsh) 中做这些(窗口标题通常是 PowerShell 7.x$PSVersionTable.PSVersion 主版本应为 7);
  2. $CondaRoot 写的是 ...\anaconda3\current\App(你前面的输出已表明文件都在那里);
  3. 没用到公司/学校的限制策略:Get-ExecutionPolicy -ListCurrentUser 至少是 RemoteSignedBypass

照着上面 1→2→3 的顺序走,通常在第 1 或第 2 步就能恢复 conda

http://www.hskmm.com/?act=detail&tid=29200

相关文章:

  • 2025智能吉他厂家最新权威推荐榜:创新科技与卓越音质完美融
  • 2025景区售票系统厂家最新权威推荐榜:智慧票务与高效管理口
  • 数学邪修手册
  • 实用指南:光谱相机在护眼灯领域的应用
  • 2025校平机厂家最新权威推荐榜:精准矫平与高效生产首选
  • idea 激活
  • 海曼HTPA80X64红外热成像 测温采集记录仪 多点实时温度分析
  • 位与字节
  • 2025年氢氧化镁厂家最新权威推荐榜:环保阻燃与工业应用深度
  • 2025年苹果仓民宿最新权威推荐榜:工业遗存与人文情怀完美融
  • 2025二手掘进机厂家最新权威推荐榜:高性价比与可靠性能深度
  • 对我学过的算法的一些总结
  • 鲜花 10.12
  • 数组01
  • 实验一:逆向及BOF基础实践-20232301郑好
  • 排除通过IP访问MySQL时出现的连接错误问题
  • SciTech-Mathmatics-Proba. Stats.: 统计量: 增长速度、同比 与 环比 的概念、用途、示例、计算公式、注意事项
  • Java二维数组
  • 在Ubuntu系统上设置syslog日志轮替与大小限制
  • 从 “有人值守” 到 “少人运维”:智能巡检机器人重塑配电室管理模式 - 实践
  • 2025年10月最新推荐卫星电话品牌发布,涵防爆对讲卫星电话,卫星电话应急指挥系统,卫星电话防爆对讲终端,防爆手持卫星电话!
  • 很早就想注册博客园了
  • [KaibaMath]1006 关于∀ε0, |a-b|λε(λ0) = a=b的证明
  • dataset类
  • 【PolarCTF】nc
  • [ARC081E] Dont Be a Subsequence 题目分析
  • AI代理从概念验证到生产部署全流程
  • Azure Arc C2即服务:攻击与防御实战指南
  • CPU中的加法运算与减法运算
  • macos单独打开模拟器simulator