删除 auto_install.py

This commit is contained in:
骆华华 2026-01-15 22:30:44 +08:00
parent 6b2a7b82b1
commit 60dcc3c490

View File

@ -1,241 +0,0 @@
"""
信用卡欺诈检测系统 - 自动化安装脚本
跨平台支持WindowsLinuxmacOS
"""
import sys
import subprocess
import os
from pathlib import Path
import time
def print_header(text):
"""打印标题"""
print("=" * 60)
print(text)
print("=" * 60)
print()
def print_step(step_num, total_steps, description):
"""打印步骤信息"""
print(f"[步骤 {step_num}/{total_steps}] {description}")
def run_command(command, description=""):
"""运行命令并处理错误"""
try:
if description:
print(f" 正在执行: {description}")
result = subprocess.run(
command,
shell=True,
check=True,
capture_output=True,
text=True
)
if result.stdout:
print(result.stdout)
return True
except subprocess.CalledProcessError as e:
print(f" [错误] 命令执行失败")
if e.stderr:
print(f" 错误信息: {e.stderr}")
return False
def check_python_version():
"""检查Python版本"""
print_step(1, 5, "检查Python版本...")
version = sys.version_info
print(f" Python版本: {version.major}.{version.minor}.{version.micro}")
if version.major == 3 and version.minor >= 10:
print(" ✓ Python版本符合要求 (>= 3.10)")
return True
else:
print(" ✗ Python版本不符合要求需要3.10或更高版本")
print(" 请从 https://www.python.org/downloads/ 下载最新版本")
return False
def install_dependencies():
"""安装Python依赖"""
print_step(2, 5, "安装Python依赖...")
print(" 正在安装依赖包,这可能需要几分钟...")
# 尝试使用pip安装
success = run_command(
f"{sys.executable} -m pip install -r requirements.txt",
"安装依赖包"
)
if success:
print(" ✓ 依赖安装完成")
return True
else:
print(" ✗ 依赖安装失败")
print(" 请检查网络连接或尝试使用国内镜像源:")
print(f" {sys.executable} -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple")
return False
def check_data_file():
"""检查数据文件"""
print_step(3, 5, "检查数据文件...")
data_file = Path("data/creditcard.csv")
if data_file.exists():
file_size = data_file.stat().st_size / (1024 * 1024) # MB
print(f" ✓ 数据文件已存在 (大小: {file_size:.2f} MB)")
return True
else:
print(" ✗ 未找到数据文件 data/creditcard.csv")
print()
print(" 请从以下地址下载数据集:")
print(" https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud")
print()
print(" 下载后将 creditcard.csv 文件放入 data/ 目录")
print()
response = input(" 数据文件已准备好吗?(Y/N): ").strip().upper()
if response == 'Y':
print(" ✓ 继续安装...")
return True
else:
print(" ✗ 安装已取消")
return False
def check_model_files():
"""检查并训练模型"""
print_step(4, 5, "检查模型文件...")
models_dir = Path("models")
model_file = models_dir / "random_forest_model.joblib"
if model_file.exists():
file_size = model_file.stat().st_size / 1024 # KB
print(f" ✓ 模型文件已存在 (大小: {file_size:.2f} KB)")
return True
else:
print(" 模型文件不存在,开始训练模型...")
print(" 这可能需要几分钟,请耐心等待...")
success = run_command(
f"{sys.executable} src/train.py",
"训练模型"
)
if success:
print(" ✓ 模型训练完成")
return True
else:
print(" ✗ 模型训练失败")
return False
def run_environment_check():
"""运行环境检查"""
print_step(5, 5, "运行环境检查...")
success = run_command(
f"{sys.executable} check_environment.py",
"检查环境"
)
if success:
print(" ✓ 环境检查通过")
else:
print(" ⚠ 环境检查发现问题,但将继续启动应用")
return True
def launch_application():
"""启动应用"""
print()
print_header("安装完成正在启动Web界面...")
print()
print("提示:")
print("- Web界面将在浏览器中自动打开")
print("- 如果没有自动打开,请访问: http://localhost:8501")
print("- 按 Ctrl+C 可以停止服务")
print()
# 等待几秒让用户看到提示
time.sleep(2)
# 启动应用
try:
subprocess.run(
f"{sys.executable} src/agent_app.py",
shell=True,
check=True
)
except KeyboardInterrupt:
print()
print("应用已停止")
except Exception as e:
print(f"启动应用时出错: {e}")
def main():
"""主函数"""
print_header("信用卡欺诈检测系统 - 自动化安装脚本")
# 检查Python版本
if not check_python_version():
input("按回车键退出...")
sys.exit(1)
print()
# 安装依赖
if not install_dependencies():
input("按回车键退出...")
sys.exit(1)
print()
# 检查数据文件
if not check_data_file():
input("按回车键退出...")
sys.exit(1)
print()
# 检查模型文件
if not check_model_files():
input("按回车键退出...")
sys.exit(1)
print()
# 运行环境检查
run_environment_check()
# 启动应用
launch_application()
if __name__ == "__main__":
try:
main()
except KeyboardInterrupt:
print()
print("安装已取消")
sys.exit(1)
except Exception as e:
print()
print(f"安装过程中出现错误: {e}")
import traceback
traceback.print_exc()
input("按回车键退出...")
sys.exit(1)