From 96948a37de17831ed9719b5c4e59d707af121723 Mon Sep 17 00:00:00 2001 From: mac Date: Mon, 29 Jun 2026 16:45:16 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20migrations=20=E6=A8=A1=E5=9D=97=E5=9C=A8?= =?UTF-8?q?=20gunicorn=20--preload=20=E4=B8=8B=E6=97=A0=E6=B3=95=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ModuleNotFoundError: No module named 'migrations' 根因:gunicorn 的 sys.path 不包含 backend/ 目录 修复:flask_app.py 顶层添加 sys.path.insert 确保 backend 在搜索路径中 --- backend/flask_app.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/backend/flask_app.py b/backend/flask_app.py index d6377ba..443eaf7 100644 --- a/backend/flask_app.py +++ b/backend/flask_app.py @@ -1,12 +1,18 @@ from datetime import date, datetime from pathlib import Path import os +import sys import json import shutil import sqlite3 # 保留用于数据迁移 import logging import mysql.connector +# 确保 backend 目录在 sys.path 中(兼容 gunicorn --preload 模式) +_backend_dir = os.path.dirname(os.path.abspath(__file__)) +if _backend_dir not in sys.path: + sys.path.insert(0, _backend_dir) + from flask import Flask, jsonify, render_template, request, send_file, session, redirect from werkzeug.security import generate_password_hash, check_password_hash