Files

193 lines
4.7 KiB
Python
Raw Permalink Normal View History

2026-03-18 15:15:52 +08:00
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Screen2Feishu 安装和设置脚本
"""
import os
import sys
import subprocess
import shutil
from pathlib import Path
def print_header(text):
"""打印标题"""
print("\n" + "=" * 60)
print(f" {text}")
print("=" * 60)
def print_step(text):
"""打印步骤"""
print(f"\n{text}")
def check_python_version():
"""检查Python版本"""
print_step("检查Python版本...")
version = sys.version_info
if version.major < 3 or (version.major == 3 and version.minor < 8):
print(f" Python版本过低: {sys.version}")
print("请使用 Python 3.8 或更高版本")
return False
print(f" Python版本: {sys.version}")
return True
def install_dependencies():
"""安装依赖"""
print_step("安装依赖...")
try:
# 检查是否已安装pip
subprocess.run([sys.executable, "-m", "pip", "--version"],
check=True, capture_output=True)
# 安装依赖
print("正在安装核心依赖...")
subprocess.run([
sys.executable, "-m", "pip", "install",
"-r", "requirements.txt"
], check=True)
print(" 依赖安装完成")
return True
except subprocess.CalledProcessError as e:
print(f" 依赖安装失败: {e}")
return False
except Exception as e:
print(f" 发生错误: {e}")
return False
def create_directories():
"""创建必要的目录"""
print_step("创建目录...")
directories = [
"monitor_images",
"processed_images",
"logs"
]
for directory in directories:
path = Path(directory)
if not path.exists():
path.mkdir(exist_ok=True)
print(f" 创建目录: {directory}")
else:
print(f" 目录已存在: {directory}")
return True
def create_config():
"""创建配置文件"""
print_step("创建配置文件...")
config_path = Path("config.yaml")
example_path = Path("config.example.yaml")
if config_path.exists():
print(" 配置文件已存在,跳过创建")
return True
if not example_path.exists():
print(" 示例配置文件不存在")
return False
# 复制示例配置文件
shutil.copy(example_path, config_path)
print(" 已创建 config.yaml请根据需要编辑配置")
# 显示配置说明
print("\n📝 配置说明:")
print("1. 编辑 config.yaml 文件")
print("2. 填入你的 AI API Key")
print("3. 填入你的飞书应用信息:")
print(" - app_id")
print(" - app_secret")
print(" - app_token")
print(" - table_id")
print("4. 根据需要调整其他配置")
return True
def show_usage():
"""显示使用说明"""
print_step("使用说明:")
print("""
1. 配置文件:
- 编辑 config.yaml填入你的 API Key 和飞书信息
2. 启动程序:
python main.py
3. 测试模式:
python main.py --test
4. 查看帮助:
python main.py --help
5. 运行测试:
python -m unittest discover tests
6. 查看文档:
- README.md - 项目说明
- docs/OPTIMIZED_R&D.md - 开发文档
- docs/PROJECT_IMPROVEMENT_PLAN.md - 改进计划
""")
def main():
"""主函数"""
print_header("Screen2Feishu 安装向导")
print("欢迎使用 Screen2Feishu 安装向导!")
print("本脚本将帮助你完成以下步骤:")
print("1. 检查Python版本")
print("2. 安装依赖")
print("3. 创建必要的目录")
print("4. 创建配置文件")
# 询问用户是否继续
response = input("\n是否继续? (y/n): ").strip().lower()
if response not in ['y', 'yes']:
print("安装已取消")
return
# 执行安装步骤
steps = [
("检查Python版本", check_python_version),
("安装依赖", install_dependencies),
("创建目录", create_directories),
("创建配置文件", create_config),
]
all_success = True
for step_name, step_func in steps:
print_header(step_name)
if not step_func():
print(f" {step_name} 失败")
all_success = False
break
if all_success:
print_header("安装完成!")
print(" 所有步骤完成!")
show_usage()
print("\n🎉 Screen2Feishu 安装成功!")
print("请编辑 config.yaml 文件,然后运行: python main.py")
else:
print_header("安装失败")
print(" 安装过程中出现问题,请检查错误信息并重试")
if __name__ == "__main__":
main()