You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask项目模块导入报错:ModuleNotFoundError问题求助

问题解决方案

你的问题主要源于Python模块导入路径配置错误,以及Flask应用启动时的上下文路径问题,以下是分步解决方法:

一、修复ModuleNotFoundError: No module named 'server'(直接运行app.py时的错误)

原因

当你直接在server目录下运行app.py时,Python会将当前目录(server)加入模块搜索路径,此时from server import app会尝试寻找名为server的模块,但实际server是你的父目录(Backend下的子目录),因此找不到该模块。

修改app.py代码

将导入语句改为相对导入,适配当前包结构:

from flask import Flask,render_template, request, make_response,jsonify
import os
from . import app  # 从当前server包导入app
from .models.player import Player  # 从当前包的models子模块导入Player


@app.route('/', methods=['GET', 'POST'])
def index():
    print('hello')
    return render_template('index.html')

if __name__ == '__main__':
    app.run(debug=True, host='localhost', port=5000)

二、修复ModuleNotFoundError: No module named 'config'(执行flask run时的错误)

原因

__init__.py中app.config.from_object('config.Config')使用了绝对模块路径,但当你在Backend目录执行flask run时,Python无法直接找到server目录下的config模块,必须指定完整的模块路径。

修改__init__.py代码

  1. 修正配置文件的导入路径
  2. 优化模板目录的绝对路径(避免不同运行目录下路径错误)
  3. 移除可能引发循环导入的语句
from flask import Flask
from flask_sqlalchemy import SQLAlchemy  
from flask_cors import CORS
import os

# 动态获取static目录的绝对路径,适配任意运行目录
template_dir = os.path.abspath(os.path.join(os.path.dirname(__file__), 'static'))
app = Flask(__name__, template_folder=template_dir)
# 指定完整的模块路径,确保config能被正确导入
app.config.from_object('server.config.Config')
CORS(app)

db = SQLAlchemy(app)

from .models import player

# 移除原有的import server.app,避免循环导入

三、修复player.py的导入问题

将player.py中的导入改为相对导入,确保跨运行目录时的兼容性:

from . import db  # 从当前server包导入db
from datetime import datetime


class Player(db.Model):
    __tablename__ = 'player'
    id = db.Column(db.Integer, primary_key=True)  # player id
    password = db.Column(db.String(255))  # password 

四、正确启动应用的两种方式

方式1:直接运行app.py

  • 进入server目录,执行:
    python app.py
    
  • 或者进入Backend目录,执行:
    python -m server.app
    

方式2:使用flask run

  1. 进入Backend目录
  2. 设置FLASK_APP环境变量:
    • Windows系统:
      set FLASK_APP=server.app
      
    • Linux/macOS系统:
      export FLASK_APP=server.app
      
  3. 启动应用:
    flask run
    
    也可以直接一步执行:
    flask --app server.app run
    

内容的提问来源于stack exchange,提问作者maz32

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 03:28:26