我想从我的__init__
文件中导入一个类。但我没有成功导入它。这是我的目录结构
/fitBody_app
/fitBody
/static
/templates
__init__.py
models.py
views.py
run.py
这些是我__init__.py
文件的所有导入:
import os
from flask import Flask
from flask_admin import Admin
from flask_admin.contrib.sqla import ModelView
from flask_sqlalchemy import SQLAlchemy
from wtforms import fields, widgets
from fitBody.views import my_app
from flask_bootstrap import Bootstrap
app = Flask(__name__)
db = SQLAlchemy(app)
这些是我views.py
文件中的所有导入:
import bcrypt
from flask import flash, redirect, render_template, request, session, Blueprint, url_for
from fitBody.models import RegistrationForm
from fitBody.models import cursor, conn
from fitBody import db
my_app = Blueprint('fitBody', __name__)
<......>
当我尝试运行该文件时,这是我的追溯:
Traceback (most recent call last):
File "/Users/kai/github-projects/fitBody_app/run.py", line 1, in <module>
from fitBody import app
File "/Users/kai/github-projects/fitBody_app/fitBody/__init__.py", line 9, in <module>
from fitBody.views import fitBody
File "/Users/kai/github-projects/fitBody_app/fitBody/views.py", line 8, in <module>
from fitBody import db
ImportError: cannot import name 'db'
我曾经想过,因为我从同一个文件夹中导入,所以可以像这样导入。
如何从db
文件中导入__init__.py
对象?
答案 0 :(得分:2)
由于views.py使用db
,因此导入语句应该在db defination之后。或者为了更好的设计,将蓝图移动到另一个文件,并将蓝图保留在该文件中:
#__init__.py
app = Flask(__name__)
db = SQLAlchemy(app)
from fitBody.views import my_app
答案 1 :(得分:1)
与从views.py
文件导入没有任何关系。您的__init__.py
正在从您的__init__.py
文件导入,而views.py
文件正在从models.py
导入,这是一个导入周期。我不确定您的db
是怎样的,但是如何在models.py
中初始化__init__.py
并从views.py
导入models.py
和from keras.models import Sequential
from keras.layers import Dense
import theano
import theano.tensor as T
seed = 150
np.random.seed(seed)
# Define Model
model = Sequential()
model.add(Dense(500, input_dim=6, init='uniform', activation='relu'))
model.add(Dense(6, init='uniform', activation='softmax'))
def customObjective(y_true, y_pred):
cce = T.nnet.categorical_crossentropy(y_pred, y_true)
return cce
model.compile(loss=customObjective, optimizer='adam',metrics= ["hinge"])
kf = KFold(n_splits=5)
Y = trainData['label'].as_matrix()
X = trainData[['input','feat1','feat2','feat3','feat4','feat5']].as_matrix()
for train, test in kf.split(trainData):
trainX = X[train]
print trainX.shape
trainY = Y[train]
print trainY.shape
testX = X[test]
testY = Y[test]
**model.fit(trainX, trainY, nb_epoch=25, batch_size=1)** # Error on this line
print("[INFO] evaluating on testing set...")
(loss, accuracy) = model.evaluate(testData, testLabels, batch_size=128, verbose=1)
print("[INFO] loss={:.4f}, accuracy: {:.4f}%".format(loss,accuracy * 100))
}