# Conflicts:
#	tests/fixtures/architecture/runtime-contract-baseline.json
#	uv.lock
This commit is contained in:
jxxghp
2026-08-22 07:21:20 +08:00
36 changed files with 153 additions and 1034 deletions
+11 -11
View File
@@ -178,7 +178,7 @@ python_version_ok() {
local python_bin="$1"
"$python_bin" - <<'PY' >/dev/null 2>&1
import sys
raise SystemExit(0 if sys.version_info >= (3, 12) else 1)
raise SystemExit(0 if sys.version_info >= (3, 14) else 1)
PY
}
@@ -228,20 +228,20 @@ find_uv_python() {
python_install_hint() {
case "$OS_NAME" in
macOS)
echo "脚本已尝试自动安装 Git、curl 和 Python 3.12+。" >&2
echo "如果自动安装失败,请先安装 Homebrew,或手动执行:brew install git curl python@3.12" >&2
echo "脚本已尝试自动安装 Git、curl 和 Python 3.14+。" >&2
echo "如果自动安装失败,请先安装 Homebrew,或手动执行:brew install git curl python@3.14" >&2
;;
Linux*)
echo "脚本已尝试自动安装 Git、curl 和 Python 3.12+。" >&2
echo "如果自动安装失败,请先安装 Git、curl、Python 3.12+。" >&2
echo "例如 Debian/Ubuntu: sudo apt install git curl python3.12" >&2
echo "例如 Fedora/RHEL: sudo dnf install git curl python3.12" >&2
echo "脚本已尝试自动安装 Git、curl 和 Python 3.14+。" >&2
echo "如果自动安装失败,请先安装 Git、curl、Python 3.14+。" >&2
echo "例如 Debian/Ubuntu: sudo apt install git curl python3.14" >&2
echo "例如 Fedora/RHEL: sudo dnf install git curl python3.14" >&2
;;
Windows)
echo "推荐在 WSL、Linux 或 macOS 终端中运行此脚本。" >&2
;;
*)
echo "请先安装 Git、curl、Python 3.12+。" >&2
echo "请先安装 Git、curl、Python 3.14+。" >&2
;;
esac
}
@@ -415,11 +415,11 @@ ensure_python() {
return 0
fi
echo "==> 未找到可用的 Python 3.12+,开始自动安装 Python 3.12"
uv python install 3.12
echo "==> 未找到可用的 Python 3.14+,开始自动安装 Python 3.14"
uv python install 3.14
PYTHON_BIN="$(find_uv_python "$(command -v uv)" || true)"
if [[ -z "$PYTHON_BIN" ]] || ! python_version_ok "$PYTHON_BIN"; then
echo "自动安装 Python 3.12 失败。" >&2
echo "自动安装 Python 3.14 失败。" >&2
return 1
fi
}
+3 -3
View File
@@ -8,11 +8,11 @@ PROJECT_ROOT=""
PYTHON_BIN=""
COLLECTOR_PATH=""
# 判断候选 Python 是否满足 3.11 最低版本。
# 判断候选 Python 是否满足 3.14 最低版本。
python_version_ok() {
"$1" - <<'PY' >/dev/null 2>&1
import sys
raise SystemExit(0 if sys.version_info >= (3, 11) else 1)
raise SystemExit(0 if sys.version_info >= (3, 14) else 1)
PY
}
@@ -40,7 +40,7 @@ find_python() {
"${PROJECT_ROOT:+$PROJECT_ROOT/venv/bin/python}" \
"${PROJECT_ROOT:+$PROJECT_ROOT/.venv/bin/python}" \
"${VIRTUAL_ENV:+$VIRTUAL_ENV/bin/python}" \
python3.13 python3.12 python3.11 python3; do
python3.14 python3; do
[[ -n "$candidate" ]] || continue
if [[ "$candidate" == */* ]]; then
resolved="$candidate"
+6 -6
View File
@@ -33,8 +33,8 @@ PUBLIC_DIR = ROOT / "public"
RUNTIME_DIR = ROOT / ".runtime"
NODE_DIR = RUNTIME_DIR / "node"
INSTALL_ENV_FILE = ROOT / ".moviepilot.env"
MIN_PYTHON_VERSION = (3, 12)
SUPPORTED_PYTHON_TEXT = "Python 3.12+"
MIN_PYTHON_VERSION = (3, 14)
SUPPORTED_PYTHON_TEXT = "Python 3.14+"
UV_VERSION = "0.12.5"
CONFIG_DIR = LEGACY_CONFIG_DIR
@@ -2722,7 +2722,7 @@ def install_deps(*, python_bin: str, venv_dir: Path, recreate: bool) -> Path:
venv_dir
):
raise RuntimeError(
"重建虚拟环境需要使用 venv 外部的 Python 3.12+ 解释器。"
"重建虚拟环境需要使用 venv 外部的 Python 3.14+ 解释器。"
)
uv_bin = require_uv()
temporary_uv_dir: Optional[TemporaryDirectory[str]] = None
@@ -3719,7 +3719,7 @@ def build_parser() -> argparse.ArgumentParser:
install_parser.add_argument(
"--python",
default=DEFAULT_BOOTSTRAP_PYTHON,
help="用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.12+ 版本",
help="用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.14+ 版本",
)
install_parser.add_argument(
"--venv", default=str(ROOT / "venv"), help="虚拟环境目录"
@@ -3781,7 +3781,7 @@ def build_parser() -> argparse.ArgumentParser:
setup_parser.add_argument(
"--python",
default=DEFAULT_BOOTSTRAP_PYTHON,
help="用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.12+ 版本",
help="用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.14+ 版本",
)
setup_parser.add_argument("--venv", default=str(ROOT / "venv"), help="虚拟环境目录")
setup_parser.add_argument(
@@ -3853,7 +3853,7 @@ def build_parser() -> argparse.ArgumentParser:
update_parser.add_argument(
"--python",
default=DEFAULT_BOOTSTRAP_PYTHON,
help="用于安装后端依赖的 Python 解释器,默认自动选择本地 3.12+ 版本",
help="用于安装后端依赖的 Python 解释器,默认自动选择本地 3.14+ 版本",
)
update_parser.add_argument(
"--venv", default=str(ROOT / "venv"), help="虚拟环境目录"