主角线:Guspu Frillyknots / Ral Fastenhatchets / Alath Blottedmine 由线索挖掘器自动选定,按因果链切集,经 5 维度自评闸门(≥12 分)后入库。
37 lines
1.3 KiB
Bash
Executable File
37 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# 管道启动器:把命令交给一个真正装了依赖的解释器。
|
|
#
|
|
# 背景(实测踩过的坑):会话里 PATH 上的 python3 可能不是系统解释器,
|
|
# 而是编辑器工具链自建的 venv(例如 ~/.pi-lens/pip-tools)。
|
|
# 那种 venv 里没有 defusedxml,而且关闭了 user site,于是
|
|
# `python3 -m dfannals.cli` 会突然报 ModuleNotFoundError。
|
|
# 这里主动挑一个能 import defusedxml 的解释器,避免依赖 PATH 的偶然性。
|
|
#
|
|
# scripts/dfannals status|plan|threads|episodes|cast|index|next|run ...
|
|
# DFANNALS_PYTHON=/path/to/python3 scripts/dfannals status # 也可显式指定
|
|
set -euo pipefail
|
|
|
|
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
|
|
pick_python() {
|
|
local cand
|
|
for cand in "${DFANNALS_PYTHON:-}" /usr/bin/python3 python3; do
|
|
[ -n "$cand" ] || continue
|
|
command -v "$cand" >/dev/null 2>&1 || continue
|
|
if "$cand" -c "import defusedxml" >/dev/null 2>&1; then
|
|
printf '%s' "$cand"
|
|
return 0
|
|
fi
|
|
done
|
|
return 1
|
|
}
|
|
|
|
PY="$(pick_python)" || {
|
|
echo "找不到可用解释器:需要一个能 import defusedxml 的 python3。" >&2
|
|
echo "装依赖:sudo apt install -y python3-defusedxml" >&2
|
|
exit 1
|
|
}
|
|
|
|
cd "$HERE"
|
|
exec "$PY" -m dfannals.cli "$@"
|