初次提交

This commit is contained in:
2025-10-14 20:05:29 +08:00
commit 6e4e48fdd2
673 changed files with 437006 additions and 0 deletions

151
backend/fix_dependencies.sh Normal file
View File

@@ -0,0 +1,151 @@
#!/bin/bash
# 依赖修复脚本 - 解决email-validator缺失问题
echo "=== 云盘后端依赖修复工具 ==="
# 检查当前用户
echo "当前用户: $(whoami)"
echo "用户ID: $EUID"
# 1. 检查Python环境
echo ""
echo "1. 检查Python环境..."
if ! command -v python3 &> /dev/null; then
echo "错误: 未找到python3"
exit 1
fi
echo "✓ Python版本: $(python3 --version)"
# 2. 检查pip
echo ""
echo "2. 检查pip..."
if ! command -v pip3 &> /dev/null; then
echo "错误: 未找到pip3"
exit 1
fi
echo "✓ pip版本: $(pip3 --version)"
# 3. 升级pip
echo ""
echo "3. 升级pip..."
if [ "$EUID" -eq 0 ]; then
pip3 install --upgrade pip
else
pip3 install --user --upgrade pip
fi
echo "✓ pip升级完成"
# 4. 安装email-validator单独安装确保成功
echo ""
echo "4. 安装email-validator..."
if [ "$EUID" -eq 0 ]; then
pip3 install email-validator
else
pip3 install --user email-validator
fi
if [ $? -eq 0 ]; then
echo "✓ email-validator安装成功"
else
echo "✗ email-validator安装失败"
exit 1
fi
# 5. 验证email-validator安装
echo ""
echo "5. 验证email-validator安装..."
python3 -c "import email_validator; print('✓ email-validator导入成功')" || {
echo "✗ email-validator验证失败"
exit 1
}
# 6. 安装其他核心依赖
echo ""
echo "6. 安装其他核心依赖..."
CORE_PACKAGES="fastapi uvicorn sqlalchemy pymysql redis python-jose passlib python-multipart pydantic pydantic-settings httpx python-dotenv alembic bcrypt"
if [ "$EUID" -eq 0 ]; then
pip3 install $CORE_PACKAGES
else
pip3 install --user $CORE_PACKAGES
fi
if [ $? -eq 0 ]; then
echo "✓ 核心依赖安装成功"
else
echo "✗ 核心依赖安装失败"
exit 1
fi
# 7. 验证核心包导入
echo ""
echo "7. 验证核心包导入..."
python3 -c "
try:
import fastapi, uvicorn, sqlalchemy, pymysql, redis, jose, passlib, pydantic, httpx, alembic
print('✓ 所有核心包导入成功')
except ImportError as e:
print(f'✗ 包导入失败: {e}')
exit(1)
" || exit 1
# 8. 测试Pydantic配置
echo ""
echo "8. 测试Pydantic配置..."
python3 -c "
try:
from pydantic import BaseModel, EmailStr
print('✓ Pydantic EmailStr类型可用')
except Exception as e:
print(f'✗ Pydantic EmailStr测试失败: {e}')
print('尝试重新安装pydantic[email]...')
exit(1)
" || {
echo "重新安装pydantic[email]..."
if [ "$EUID" -eq 0 ]; then
pip3 install "pydantic[email]"
else
pip3 install --user "pydantic[email]"
fi
}
# 9. 测试应用导入
echo ""
echo "9. 测试应用核心模块导入..."
python3 -c "
import sys
sys.path.insert(0, '.')
try:
from app.core.config import settings
print('✓ 应用配置模块导入成功')
except Exception as e:
print(f'✗ 应用配置导入失败: {e}')
print('可能需要检查应用代码')
exit(1)
" || {
echo "应用导入测试失败,但依赖已安装"
}
echo ""
echo "=== 依赖修复完成 ==="
echo ""
echo "已成功安装的包:"
echo "- email-validator (邮件验证)"
echo "- fastapi (Web框架)"
echo "- uvicorn (ASGI服务器)"
echo "- sqlalchemy (ORM)"
echo "- pymysql (MySQL驱动)"
echo "- redis (Redis客户端)"
echo "- python-jose (JWT处理)"
echo "- passlib (密码处理)"
echo "- pydantic (数据验证)"
echo "- httpx (HTTP客户端)"
echo "- alembic (数据库迁移)"
echo "- bcrypt (密码哈希)"
echo ""
echo "现在可以运行应用:"
echo "python3 main.py"
echo ""
echo "或使用部署脚本:"
echo "./quick_deploy_linux.sh"