diff --git a/cloud-bin-amd64/uv b/cloud-bin-amd64/uv deleted file mode 100644 index 92238b2..0000000 Binary files a/cloud-bin-amd64/uv and /dev/null differ diff --git a/cloud-bin-amd64/uvx b/cloud-bin-amd64/uvx deleted file mode 100644 index 511dc7f..0000000 Binary files a/cloud-bin-amd64/uvx and /dev/null differ diff --git a/pyproject.toml b/pyproject.toml deleted file mode 100644 index eb2b7dd..0000000 --- a/pyproject.toml +++ /dev/null @@ -1,24 +0,0 @@ -[project] -name = "tielu-railway-management" -version = "1.0.0" -description = "Railway Project Management System" -readme = "README.md" -requires-python = ">=3.12" -dependencies = [ - "fastapi>=0.104.1", - "uvicorn>=0.24.0", - "sqlalchemy>=2.0.23", - "pymysql>=1.1.0", - "cryptography>=41.0.7", - "pydantic>=2.5.0", - "python-dotenv>=1.0.0", - "apscheduler>=3.10.4", - "pandas>=2.1.3", - "python-multipart>=0.0.6", - "openpyxl>=3.1.5", -] - -[tool.uv.index] -url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple" -python-install-mirror = "https://mirror.nju.edu.cn/github-release/indygreg/python-build-standalone" -default = true diff --git a/setup.sh b/setup.sh deleted file mode 100644 index 0e4d1e0..0000000 --- a/setup.sh +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/bash -# 注意:此脚本应在 WSL 或 Linux 环境中运行 - -# 提示用户输入密码 -read -s -p "请输入sudo密码: " sudo_password -echo "" - -# 定义一个函数来执行需要sudo的命令 -run_with_sudo() { - echo "$sudo_password" | sudo -S bash -c "$1" -} - -# 安装unzip -run_with_sudo "apt update" - -# 给本地工具添加执行权限 -chmod +x ./cloud-bin-amd64/uv - -# 临时将本地工具目录添加到PATH -export PATH="$(pwd)/cloud-bin-amd64:$PATH" - -# 配置pip源并使用 uv 安装Python依赖 -echo "正在配置 PyPI 源并同步依赖..." -uv sync -uv pip install -r pyproject.toml -if [ ! -d ".venv" ]; then - echo "没有找到有虚拟环境" -fi -# source .venv/bin/activate diff --git a/start_daemon.sh b/start_daemon.sh deleted file mode 100644 index d9a8512..0000000 --- a/start_daemon.sh +++ /dev/null @@ -1,177 +0,0 @@ -#!/bin/bash - -# 铁路项目管理系统 - 后台运行启动脚本 -# 使用方法: ./start_daemon.sh [端口号] -# 默认端口: 8000 - -# 设置端口号,默认为8000 -PORT=${1:-3002} - -# 设置日志文件路径 -LOG_DIR="logs" -ACCESS_LOG="$LOG_DIR/access.log" -ERROR_LOG="$LOG_DIR/error.log" -APP_LOG="$LOG_DIR/app.log" -PID_FILE="$LOG_DIR/app.pid" - -# 临时添加.venv/bin到PATH -export PATH=$PATH:$(pwd)/.venv/bin -# 临时添加./cloud-bin-amd64/到PATH -export PATH=$PATH:$(pwd)/cloud-bin-amd64 - -# 激活虚拟环境 -source .venv/bin/activate - -# 创建日志目录 -mkdir -p "$LOG_DIR" - -echo "=== 铁路项目管理系统后台启动脚本 ===" -echo "端口: $PORT" -echo "日志目录: $LOG_DIR" - -# 清理端口函数 -kill_process_on_port() { - local port=$1 - echo "检查端口 ${port} 的进程..." - - # Linux系统使用不同的命令查找占用端口的进程 - if command -v lsof >/dev/null 2>&1; then - # 使用lsof - pid=$(lsof -ti :${port}) - elif command -v netstat >/dev/null 2>&1; then - # 使用netstat - pid=$(netstat -tlnp 2>/dev/null | grep ":${port} " | awk '{print $7}' | cut -d'/' -f1) - elif command -v ss >/dev/null 2>&1; then - # 使用ss - pid=$(ss -tlnp | grep ":${port} " | sed 's/.*pid=\([0-9]*\).*/\1/') - else - echo "警告: 无法找到 lsof、netstat 或 ss 命令,跳过端口检查" - return - fi - - if [ -n "$pid" ] && [ "$pid" != "" ]; then - echo "发现端口 ${port} 被占用,PID: ${pid},正在杀死进程..." - kill -9 $pid 2>/dev/null - sleep 2 - echo "已杀死端口 ${port} 的进程" - else - echo "端口 ${port} 未被占用" - fi -} - -# 停止已运行的服务函数 -stop_service() { - if [ -f "$PID_FILE" ]; then - local old_pid=$(cat "$PID_FILE") - if ps -p $old_pid > /dev/null 2>&1; then - echo "停止已运行的服务 (PID: $old_pid)..." - kill $old_pid - sleep 3 - if ps -p $old_pid > /dev/null 2>&1; then - echo "强制停止服务..." - kill -9 $old_pid - fi - fi - rm -f "$PID_FILE" - fi -} - -# 检查Python环境 -check_python() { - if ! command -v python3 >/dev/null 2>&1; then - echo "错误: 未找到 python3" - exit 1 - fi - - # 检查虚拟环境 - if [ -d ".venv" ]; then - echo "激活虚拟环境..." - source .venv/bin/activate - elif [ -d "venv" ]; then - echo "激活虚拟环境..." - source venv/bin/activate - else - echo "警告: 未找到虚拟环境,使用系统Python" - fi -} - -# 检查依赖 -check_dependencies() { - echo "检查依赖包..." - python3 -c "import fastapi, uvicorn" 2>/dev/null - if [ $? -ne 0 ]; then - echo "错误: 缺少必要的依赖包 (fastapi, uvicorn)" - echo "请运行: pip install -r requirements.txt" - exit 1 - fi -} - -# 主函数 -main() { - # 停止已运行的服务 - stop_service - - # 清理端口 - kill_process_on_port $PORT - - # 检查环境 - check_python - check_dependencies - - echo "启动服务..." - echo "启动时间: $(date)" > "$APP_LOG" - echo "端口: $PORT" >> "$APP_LOG" - echo "=================================" >> "$APP_LOG" - - # 后台启动服务 - nohup python3 -m uvicorn app.main:app \ - --host 0.0.0.0 \ - --port $PORT \ - --access-log \ - --log-level info \ - >> "$APP_LOG" 2>&1 & - - # 保存PID - echo $! > "$PID_FILE" - - # 等待服务启动 - sleep 3 - - # 检查服务是否启动成功 - if ps -p $(cat "$PID_FILE") > /dev/null 2>&1; then - echo "✅ 服务启动成功!" - echo "🌐 访问地址: http://localhost:$PORT" - echo "📖 API文档: http://localhost:$PORT/docs" - echo "📋 ReDoc文档: http://localhost:$PORT/redoc" - echo "📄 日志文件: $APP_LOG" - echo "🔍 进程ID: $(cat $PID_FILE)" - echo "" - echo "查看日志: tail -f $APP_LOG" - echo "停止服务: ./stop.sh 或 kill $(cat $PID_FILE)" - - # 创建停止脚本 - cat > stop.sh << EOF -#!/bin/bash -if [ -f "$PID_FILE" ]; then - PID=\$(cat "$PID_FILE") - echo "停止服务 (PID: \$PID)..." - kill \$PID - rm -f "$PID_FILE" - echo "服务已停止" -else - echo "未找到运行中的服务" -fi -EOF - chmod +x stop.sh - - else - echo "❌ 服务启动失败,请查看日志: $APP_LOG" - exit 1 - fi -} - -# 捕获退出信号 -trap 'echo "脚本被中断"; exit 1' INT TERM - -# 运行主函数 -main \ No newline at end of file diff --git a/start_server.sh b/start_server.sh deleted file mode 100644 index 967169a..0000000 --- a/start_server.sh +++ /dev/null @@ -1,121 +0,0 @@ -#!/bin/bash - -# 铁路项目管理系统 - 直接运行启动脚本 -# 使用方法: ./start_server.sh [端口号] -# 默认端口: 8000 - -# 设置端口号,默认为8000 -PORT=${1:-3002} - -echo "=== 铁路项目管理系统启动脚本 ===" -echo "端口: $PORT" -echo "按 Ctrl+C 停止服务" - -# 清理端口函数 -kill_process_on_port() { - local port=$1 - echo "检查端口 ${port} 的进程..." - - # Linux系统使用不同的命令查找占用端口的进程 - if command -v lsof >/dev/null 2>&1; then - # 使用lsof - pid=$(lsof -ti :${port}) - elif command -v netstat >/dev/null 2>&1; then - # 使用netstat - pid=$(netstat -tlnp 2>/dev/null | grep ":${port} " | awk '{print $7}' | cut -d'/' -f1) - elif command -v ss >/dev/null 2>&1; then - # 使用ss - pid=$(ss -tlnp | grep ":${port} " | sed 's/.*pid=\([0-9]*\).*/\1/') - else - echo "警告: 无法找到 lsof、netstat 或 ss 命令,跳过端口检查" - return - fi - - if [ -n "$pid" ] && [ "$pid" != "" ]; then - echo "发现端口 ${port} 被占用,PID: ${pid},正在杀死进程..." - kill -9 $pid 2>/dev/null - sleep 2 - echo "已杀死端口 ${port} 的进程" - else - echo "端口 ${port} 未被占用" - fi -} - -# 检查Python环境 -check_python() { - if ! command -v python3 >/dev/null 2>&1; then - echo "错误: 未找到 python3" - exit 1 - fi - - # 检查虚拟环境 - if [ -d ".venv" ]; then - echo "激活虚拟环境..." - source .venv/bin/activate - elif [ -d "venv" ]; then - echo "激活虚拟环境..." - source venv/bin/activate - else - echo "警告: 未找到虚拟环境,使用系统Python" - fi -} - -# 检查依赖 -check_dependencies() { - echo "检查依赖包..." - python3 -c "import fastapi, uvicorn" 2>/dev/null - if [ $? -ne 0 ]; then - echo "错误: 缺少必要的依赖包 (fastapi, uvicorn)" - exit 1 - fi -} - -# 显示服务信息 -show_service_info() { - echo "" - echo "==================================" - echo "✅ 服务启动成功!" - echo "🌐 访问地址: http://localhost:$PORT" - echo "📖 API文档: http://localhost:$PORT/docs" - echo "📋 ReDoc文档: http://localhost:$PORT/redoc" - echo "🔍 健康检查: http://localhost:$PORT/health" - echo "==================================" - echo "" -} - -# 清理函数 -cleanup() { - echo "" - echo "正在停止服务..." - # uvicorn会自动处理SIGTERM信号 - exit 0 -} - -# 主函数 -main() { - # 清理端口 - kill_process_on_port $PORT - - # 检查环境 - check_python - check_dependencies - - # 捕获退出信号 - trap cleanup SIGINT SIGTERM - - echo "启动服务..." - - # 显示服务信息(在后台执行,延迟3秒显示) - (sleep 3 && show_service_info) & - - # 直接启动服务(前台运行) - python3 -m uvicorn app.main:app \ - --host 0.0.0.0 \ - --port $PORT \ - --reload \ - --access-log \ - --log-level info -} - -# 运行主函数 -main \ No newline at end of file