Initial commit

This commit is contained in:
谭凯
2026-01-19 09:51:07 +08:00
commit 9ef82393be
174 changed files with 22285 additions and 0 deletions
+132
View File
@@ -0,0 +1,132 @@
#!/usr/bin/env python3
"""
快速安装和测试脚本
"""
import subprocess
import sys
import os
from pathlib import Path
def run_command(cmd, description):
"""运行命令并显示结果"""
print(f"\n🔄 {description}...")
try:
result = subprocess.run(cmd, shell=True, check=True, capture_output=True, text=True)
print(f"{description}完成")
return True
except subprocess.CalledProcessError as e:
print(f"{description}失败: {e}")
if e.stdout:
print(f"输出: {e.stdout}")
if e.stderr:
print(f"错误: {e.stderr}")
return False
def check_python_version():
"""检查 Python 版本"""
version = sys.version_info
if version.major < 3 or (version.major == 3 and version.minor < 9):
print(f"❌ Python 版本过低: {version.major}.{version.minor}")
print("需要 Python 3.9 或更高版本")
return False
print(f"✅ Python 版本: {version.major}.{version.minor}.{version.micro}")
return True
def setup_environment():
"""设置环境"""
print("🚀 EPUB 双语翻译程序 - 快速设置")
# 检查 Python 版本
if not check_python_version():
return False
# 检查 uv 是否安装
if not run_command("uv --version", "检查 uv"):
print("正在安装 uv...")
if not run_command("curl -LsSf https://astral.sh/uv/install.sh | sh", "安装 uv"):
print("❌ uv 安装失败,请手动安装")
return False
# 创建虚拟环境
if not Path(".venv").exists():
if not run_command("uv venv", "创建虚拟环境"):
return False
# 安装依赖
if not run_command("uv pip install -r requirements.txt", "安装依赖"):
return False
# 创建必要目录
for dir_name in ["output", "logs"]:
Path(dir_name).mkdir(exist_ok=True)
# 创建 .env 文件
if not Path(".env").exists():
with open(".env", "w") as f:
f.write("OPENROUTER_API_KEY=your_openrouter_api_key_here\n")
print("✅ 已创建 .env 文件")
return True
def test_installation():
"""测试安装"""
print("\n🧪 测试安装...")
# 测试导入
test_imports = [
"ebooklib",
"beautifulsoup4",
"lxml",
"openai",
"aiohttp",
"pydantic",
"loguru",
"rich"
]
for module in test_imports:
try:
if module == "beautifulsoup4":
import bs4
else:
__import__(module)
print(f"{module}")
except ImportError:
print(f"{module} 导入失败")
return False
return True
def main():
"""主函数"""
if not setup_environment():
print("\n❌ 环境设置失败")
return 1
if not test_installation():
print("\n❌ 安装测试失败")
return 1
print("\n🎉 安装完成!")
print("\n📋 下一步:")
print("1. 编辑 .env 文件,设置你的 OpenRouter API Key")
print("2. 运行测试: python main.py your_book.epub --test")
print("3. 查看帮助: python main.py --help")
# 检查是否有示例 EPUB 文件
epub_files = list(Path(".").glob("*.epub"))
if epub_files:
print(f"\n📚 发现 EPUB 文件: {epub_files[0].name}")
print(f"可以运行: python main.py '{epub_files[0].name}' --test")
return 0
if __name__ == "__main__":
sys.exit(main())