我正在尝试将我的代码分成多个文件。当我试图从另一个文件中导入任何变量时,我会收到以下错误:
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
文件夹中。
我错过了什么?
import sys; print(sys.path)
中的目录中。 - Ronsys.path.append(<包含后端文件夹的路径>)
。最好使用相对路径到你的文件夹(相对于调用模块)。 - Ron