WorkBuddy 里跑 Python 脚本结果不回显:PowerShell 输出落盘 + 绕开损坏的 Bash PATH
一句话结论
在 WorkBuddy 的 Bash/PowerShell 工具里跑命令,stdout 经常整段不回显;且 Bash 工具某些轮次 PATH 损坏(ls/cat/dirname 报 command not found)。解法:所有「要看结果」的操作改走落盘日志(Out-File/Set-Content 写文件 → Read 读回),Python 一律用绝对路径调用,不用 ls 等依赖 PATH 的命令。
场景与触发
- 现象 A:
& $PY script.py *>&1 | Out-File -FilePath $log之后,Write-Host "exit=$LASTEXITCODE"的 stdout 为空,工具面板不显示结果。 - 现象 B:Bash 工具里直接
ls/cat报command not found: ls,说明该轮 shell 的 PATH 没加载。 - 影响:空输出极易误判为「脚本没跑/失败」,浪费轮次。
解决命令(可复制)
做法 1 —— 结果落盘后读回(PowerShell):
# WorkBuddy 托管 Python(绝对路径,请把 <你的用户名> 换成你自己的 Windows 用户名)
$PY = "C:\Users\<你的用户名>\.workbuddy\binaries\python\envs\default\Scripts\python.exe"
$log = "印刷输出\_run.log" # 输出到你自己的目录
& $PY "script.py" *>&1 | Out-File -FilePath $log -Encoding UTF8
# 然后另用 Read 工具读 $log,不要依赖面板 stdout
做法 2 —— 绕开 PATH 损坏(Bash 轮次):
# 不用 ls/cat,改用 Read 工具看文件;python 用绝对路径
"C:/Users/<你的用户名>/.workbuddy/binaries/python/envs/default/Scripts/python.exe" script.py
验证结果(真实性自证)
- 现象 A 复现:多次会话中
Write-Host/*>输出在工具面板为空,改Out-File落盘后Read能稳定读到完整输出。 - 现象 B 复现:Bash 工具个别轮次
ls/dirname报 not found,切到 PowerShell 或绝对路径 python 后正常。
环境版本
- OS:Windows 11,WorkBuddy Bash/PowerShell 工具
- Python:venv
envs\default(3.13.12 managed)
广告位占位 · post-inline