没有名为'backend'的模块

4

我正在尝试将我的代码分成多个文件。当我试图从另一个文件中导入任何变量时,我会收到以下错误:

File ".\app.py", line 2, in <module>
    from backend.Measure import Measure,MeasurementSchema,measure_schema,measures_schema
ModuleNotFoundError: No module named 'backend'

我有3个文件:

  • app.py

    from flask import Flask, Request, jsonify
    from backend.Measure import Measure,MeasurementSchema,measure_schema,measures_schema
    from flask_sqlalchemy import SQLAlchemy
    
    app = Flask(__name__)
    
    db = SQLAlchemy(app)
    
    
    @app.route('/api/measures')
    def getAllMeasurements():
        results = Measure.query.all()
        return measures_schema.jsonify(results)
    
  • Measure.py

    from flask_marshmallow import Marshmallow
    from backend.app import app
    from backend.app import db
    
    ma = Marshmallow(app)
    
    class Measure(db.Model):
        __tablename__ = 'measurements'
        id = db.Column(db.Integer, primary_key=True)
        timestamp = db.Column(db.DateTime, auto_now_add=True)
        temperature = db.Column(db.Float)
    
        def __init__(self, timestamp, temperature):
            self.timestamp = timestamp
            self.temperature = temperature
    
    class MeasurementSchema(ma.Schema):
        class Meta:
            fields = ('id', 'timestamp', 'temperature')
    
    measure_schema = MeasurementSchema()
    measures_schema = MeasurementSchema(many=True)
    
  • db.py

    from sqlalchemy import create_engine
    
    server = 'localhost'
    database = 'TESTDB'
    driver = 'SQL Server Native Client 11.0'
    connection_string = f'mssql+pyodbc://@{server}/{database}?trusted_connection=yes&driver={driver}'
    
    app.config['SQLALCHEMY_DATABASE_URI'] = connection_string
    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
    
    engine = create_engine(connection_string)
    connection = engine.connect()
    
所有文件都在如下图片中所示的backend文件夹中。 1 我错过了什么?

确保“后端”模块目录位于Python路径import sys; print(sys.path)中的目录中。 - Ron
我需要做什么才能将我的文件夹添加到这个路径中? - MD10
你可以执行 sys.path.append(<包含后端文件夹的路径>)。最好使用相对路径到你的文件夹(相对于调用模块)。 - Ron
1个回答

3
如果你想要从相同的文件夹中导入一个文件,你应该这样做。
在 Measure.py 文件中。
from .app import app
from .app import db

在 app.py 中。
from .Measure import Measure,MeasurementSchema,measure_schema,measures_schema

文件“.\app.py”,第2行,在<module>中: 从.测量导入Measure,MeasurementSchema,measure_schema,measures_schema 导入错误:尝试相对导入,但没有已知的父包。 - MD10

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接