diff --git a/install.sh b/install.sh index 3053413..ddf21f0 100644 --- a/install.sh +++ b/install.sh @@ -930,12 +930,28 @@ install_bot_deps() { local bot_steps=3 bot_cur=0 bot_cur=$((bot_cur+1)); progress_bar $bot_cur $bot_steps "Создание venv..." + + # Если venv сломан (нет pip), удаляем и пересоздаём + if [ -d "$BOT_DIR/venv" ] && [ ! -f "$BOT_DIR/venv/bin/pip" ]; then + echo -e " ${YELLOW}!${NC} venv повреждён (нет pip), пересоздаю..." + rm -rf "$BOT_DIR/venv" + fi + if [ ! -d "$BOT_DIR/venv" ]; then + # Убеждаемся что ensurepip доступен + if ! python3 -m ensurepip --version &>/dev/null; then + local PY_VER + PY_VER=$(python3 -c "import sys; print(f'{sys.version_info.major}.{sys.version_info.minor}')" 2>/dev/null || echo "3") + echo -e " ${YELLOW}!${NC} Установка python${PY_VER}-venv (с ensurepip)..." + install_pkg "python${PY_VER}-venv" 2>/dev/null + install_pkg python3-venv python3-pip 2>/dev/null + fi spinner_start "Создание Python venv..." python3 -m venv "$BOT_DIR/venv" 2>/dev/null spinner_stop - if [ ! -d "$BOT_DIR/venv" ]; then - echo -e " ${RED}✗${NC} Ошибка создания venv." + if [ ! -f "$BOT_DIR/venv/bin/pip" ]; then + echo -e " ${RED}✗${NC} venv создан, но pip отсутствует." + echo -e " ${YELLOW}Выполните вручную: apt install python3-venv && rm -rf $BOT_DIR/venv${NC}" return 1 fi fi @@ -956,6 +972,11 @@ install_bot_deps() { echo -e " ${RED}✗${NC} pip install не удался." return 1 fi + # Проверяем что модуль реально доступен + if ! "$BOT_DIR/venv/bin/python" -c "import telegram" 2>/dev/null; then + echo -e " ${RED}✗${NC} Модуль telegram не найден после установки." + return 1 + fi echo -e " ${GREEN}✓${NC} Зависимости установлены" }