mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-09-06 16:07:01 +08:00
relax local install python requirement to 3.11
This commit is contained in:
+50
-44
@@ -91,7 +91,7 @@ Usage:
|
||||
|
||||
Options:
|
||||
deps:
|
||||
--python PYTHON 用于创建虚拟环境的 Python 解释器
|
||||
--python PYTHON 用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.11+ 版本
|
||||
--venv PATH 虚拟环境目录,默认 ./venv
|
||||
--recreate 删除并重建虚拟环境
|
||||
--config-dir PATH 指定配置目录
|
||||
@@ -128,7 +128,7 @@ show_setup_help() {
|
||||
Usage: moviepilot setup [OPTIONS]
|
||||
|
||||
Options:
|
||||
--python PYTHON 用于创建虚拟环境的 Python 解释器
|
||||
--python PYTHON 用于创建虚拟环境的 Python 解释器,默认自动选择本地 3.11+ 版本
|
||||
--venv PATH 虚拟环境目录,默认 ./venv
|
||||
--recreate 删除并重建虚拟环境
|
||||
--frontend-version TAG 前端版本,默认 latest
|
||||
@@ -152,7 +152,7 @@ Options:
|
||||
--ref REF 后端 Git 版本,默认 latest
|
||||
--frontend-version TAG 前端版本,默认 latest
|
||||
--node-version VER 本地 Node 运行时版本,默认 20.12.1
|
||||
--python PYTHON 用于安装后端依赖的 Python 解释器
|
||||
--python PYTHON 用于安装后端依赖的 Python 解释器,默认自动选择本地 3.11+ 版本
|
||||
--venv PATH 虚拟环境目录,默认 ./venv
|
||||
--recreate 删除并重建虚拟环境
|
||||
--skip-resources 更新 all 时跳过资源同步
|
||||
@@ -179,39 +179,60 @@ 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, 11) else 1)
|
||||
PY
|
||||
}
|
||||
|
||||
try_python_candidate() {
|
||||
local candidate="$1"
|
||||
local python_path=""
|
||||
|
||||
python_path="$(command -v "$candidate" 2>/dev/null || true)"
|
||||
if [ -n "$python_path" ] && python_version_ok "$python_path"; then
|
||||
printf '%s\n' "$python_path"
|
||||
return 0
|
||||
fi
|
||||
return 1
|
||||
}
|
||||
|
||||
find_system_python() {
|
||||
if command -v python3 >/dev/null 2>&1; then
|
||||
local python3_bin
|
||||
python3_bin="$(command -v python3)"
|
||||
if python_version_ok "$python3_bin"; then
|
||||
printf '%s\n' "$python3_bin"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
if command -v python >/dev/null 2>&1; then
|
||||
local python_bin
|
||||
python_bin="$(command -v python)"
|
||||
if python_version_ok "$python_bin"; then
|
||||
printf '%s\n' "$python_bin"
|
||||
return 0
|
||||
fi
|
||||
fi
|
||||
local minor
|
||||
local uv_bin
|
||||
local uv_python
|
||||
|
||||
for minor in 20 19 18 17 16 15 14 13 12 11; do
|
||||
if try_python_candidate "python3.$minor"; then
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
if try_python_candidate python3; then
|
||||
return 0
|
||||
fi
|
||||
if try_python_candidate python; then
|
||||
return 0
|
||||
fi
|
||||
for uv_bin in "$(command -v uv 2>/dev/null || true)" "$HOME/.local/bin/uv"; do
|
||||
if [ -n "$uv_bin" ] && [ -x "$uv_bin" ]; then
|
||||
if "$uv_bin" python find 3.12 >/dev/null 2>&1; then
|
||||
"$uv_bin" python find 3.12
|
||||
return 0
|
||||
fi
|
||||
for minor in 20 19 18 17 16 15 14 13 12 11; do
|
||||
uv_python="$("$uv_bin" python find "3.$minor" 2>/dev/null || true)"
|
||||
if [ -n "$uv_python" ] && python_version_ok "$uv_python"; then
|
||||
printf '%s\n' "$uv_python"
|
||||
return 0
|
||||
fi
|
||||
done
|
||||
fi
|
||||
done
|
||||
return 1
|
||||
}
|
||||
|
||||
require_bootstrap_python() {
|
||||
if [ -n "$BOOTSTRAP_PYTHON" ]; then
|
||||
return 0
|
||||
fi
|
||||
echo "未找到可用的 Python 3.11+ 解释器,请先安装 Python 3.11 或更高版本" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
default_config_dir() {
|
||||
case "$(uname -s)" in
|
||||
Darwin)
|
||||
@@ -342,10 +363,7 @@ case "${1:-}" in
|
||||
;;
|
||||
install)
|
||||
shift
|
||||
if [ -z "$BOOTSTRAP_PYTHON" ]; then
|
||||
echo "未找到可用的 Python 解释器,请先安装 Python 3" >&2
|
||||
exit 1
|
||||
fi
|
||||
require_bootstrap_python
|
||||
case "${1:-}" in
|
||||
deps)
|
||||
shift
|
||||
@@ -367,34 +385,22 @@ case "${1:-}" in
|
||||
;;
|
||||
init)
|
||||
shift
|
||||
if [ -z "$BOOTSTRAP_PYTHON" ]; then
|
||||
echo "未找到可用的 Python 解释器,请先安装 Python 3" >&2
|
||||
exit 1
|
||||
fi
|
||||
require_bootstrap_python
|
||||
exec "$BOOTSTRAP_PYTHON" "$SETUP_SCRIPT" init "$@"
|
||||
;;
|
||||
setup)
|
||||
shift
|
||||
if [ -z "$BOOTSTRAP_PYTHON" ]; then
|
||||
echo "未找到可用的 Python 解释器,请先安装 Python 3" >&2
|
||||
exit 1
|
||||
fi
|
||||
require_bootstrap_python
|
||||
exec "$BOOTSTRAP_PYTHON" "$SETUP_SCRIPT" setup "$@"
|
||||
;;
|
||||
update)
|
||||
shift
|
||||
if [ -z "$BOOTSTRAP_PYTHON" ]; then
|
||||
echo "未找到可用的 Python 解释器,请先安装 Python 3" >&2
|
||||
exit 1
|
||||
fi
|
||||
require_bootstrap_python
|
||||
exec "$BOOTSTRAP_PYTHON" "$SETUP_SCRIPT" update "$@"
|
||||
;;
|
||||
agent)
|
||||
shift
|
||||
if [ -z "$BOOTSTRAP_PYTHON" ]; then
|
||||
echo "未找到可用的 Python 解释器,请先安装 Python 3" >&2
|
||||
exit 1
|
||||
fi
|
||||
require_bootstrap_python
|
||||
exec "$BOOTSTRAP_PYTHON" "$SETUP_SCRIPT" agent "$@"
|
||||
;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user