Python 没有名为';后端';
您好,我正在尝试将代码分离到文件中。当我尝试从另一个文件导入任何变量时,出现以下错误: 文件“\app.py”,第2行,在 从后端.Measure导入度量,MeasurementSchema,Measure\u模式,measures\u模式 ModuleNotFoundError:没有名为“backend”的模块 我有3个文件:Python 没有名为';后端';,python,Python,您好,我正在尝试将代码分离到文件中。当我尝试从另一个文件导入任何变量时,出现以下错误: 文件“\app.py”,第2行,在 从后端.Measure导入度量,MeasurementSchema,Measure\u模式,measures\u模式 ModuleNotFoundError:没有名为“backend”的模块 我有3个文件: app.py from flask import Flask, Request, jsonify from backend.Measure import Measur
- 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)
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()
- db.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)
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()
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)
我丢失了什么?如果要从同一文件夹导入文件,应该这样做 In Measure.py
from .app import app
from .app import db
在app.py中
from .Measure import Measure,MeasurementSchema,measure_schema,measures_schema
确保“后端”模块目录位于python路径
import sys中的目录中;打印(sys.path)
。要将文件夹添加到此路径,我需要做什么?您可以执行sys.path.append()
。最好是文件夹的相对路径(相对于调用模块)。文件“\app.py”,第2行,from.Measure import度量,MeasurementSchema,Measure\u schema,measures\u schema ImportError:尝试在没有已知父包的情况下进行相对导入