This commit is contained in:
Your Name
2026-07-23 17:56:25 +08:00
parent a05dae8412
commit 4970d8f8d3
4262 changed files with 735221 additions and 0 deletions
+104
View File
@@ -0,0 +1,104 @@
#!/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 "========================================"