Files
dy/backend/baota_use_panel_python.sh
T
2026-07-23 17:56:25 +08:00

105 lines
3.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env bash
# 使用宝塔「Python环境管理」安装的 Python 完成项目配置
# 用法: bash /www/wwwroot/douyin/backend/baota_use_panel_python.sh
set -euo pipefail
BACKEND="$(cd "$(dirname "$0")" && pwd)"
ROOT="$(cd "$BACKEND/.." && pwd)"
echo "========================================"
echo " 宝塔 Python 环境配置"
echo "========================================"
echo
# 扫描宝塔 Python(环境管理 / Python项目)
PY=""
for base in \
/home/www/server/pyporject_evn/versions \
/www/server/pyporject_evn/versions \
/www/server/panel/pyenv/versions; do
[ -d "$base" ] || continue
for ver_dir in $(ls -d "$base"/* 2>/dev/null | sort -V -r); do
for name in python3 python; do
candidate="$ver_dir/bin/$name"
[ -x "$candidate" ] || continue
ver="$("$candidate" -V 2>&1 | awk '{print $2}')"
echo "[发现] $candidate ($ver)"
if ! "$candidate" -c "import sys; sys.exit(0 if sys.version_info>=(3,10) else 1)" 2>/dev/null; then
echo " 跳过: 版本低于 3.10"
continue
fi
if ! "$candidate" -c "import ssl" 2>/dev/null; then
echo " 跳过: 无 SSL(需在宝塔重装 Python 前先 yum install openssl-devel"
continue
fi
PY="$candidate"
echo " -> 选用"
break 3
done
done
done
if [ -z "$PY" ]; then
echo
echo "[错误] 未找到可用的宝塔 Python 3.10+(需带 SSL)。"
echo
echo "请在宝塔面板操作:"
echo " 1) 软件商店 -> Python项目管理器 -> 环境管理"
echo " 2) SSH 先执行: yum install -y openssl openssl-devel"
echo " 3) 环境管理 -> 安装 Python 3.11"
echo " 4) 重新运行本脚本"
echo
echo "若已安装但仍无 SSL,卸载该版本后重装。"
exit 1
fi
echo
echo "[OK] 使用宝塔 Python: $PY"
"$PY" -c "import ssl; print('[OK] OpenSSL:', ssl.OPENSSL_VERSION)"
echo
export KEFU_PYTHON="$PY"
export PLAYWRIGHT_BROWSERS_PATH="${PLAYWRIGHT_BROWSERS_PATH:-$ROOT/playwright-browsers}"
echo "[1/4] 安装 Python 依赖..."
"$PY" -m pip install -U pip
"$PY" -m pip install -r "$BACKEND/requirements.txt"
echo
echo "[2/4] 创建项目 venv(可选,便于宝塔启动)..."
"$PY" -m venv "$BACKEND/.venv" --clear
"$BACKEND/.venv/bin/python" -m pip install -U pip -q
"$BACKEND/.venv/bin/pip" install -r "$BACKEND/requirements.txt"
chmod -R 755 "$BACKEND/.venv"
chown -R www:www "$BACKEND/.venv" 2>/dev/null || true
echo " venv: $BACKEND/.venv"
echo
echo "[3/4] Playwright Chromium..."
KEFU_PYTHON="$BACKEND/.venv/bin/python" bash "$BACKEND/baota_playwright.sh"
echo
echo "[4/4] 前端与 IM 依赖..."
if command -v npm &>/dev/null; then
cd "$BACKEND/rpa_engine/douyin_im/static" && npm install --no-fund --no-audit
cd "$ROOT/frontend" && npm install --no-fund --no-audit && npm run build
else
echo "[警告] 未安装 Node.js,请宝塔安装 Node 18+ 后手动 npm install"
fi
chown -R www:www "$ROOT" 2>/dev/null || true
echo
echo "========================================"
echo " 配置完成"
echo
echo " 宝塔 Python项目 设置:"
echo " 项目路径: $BACKEND"
echo " Python环境: 选环境管理里的 3.11"
echo " 启动命令: bash $BACKEND/baota_start.sh"
echo " 依赖包: $BACKEND/requirements.txt"
echo
echo " .env 添加:"
echo " PLAYWRIGHT_BROWSERS_PATH=$PLAYWRIGHT_BROWSERS_PATH"
echo "========================================"