【发布时间】:2018-02-18 07:08:02
【问题描述】:
当我尝试加载 pickle 文件时收到此错误消息:
Can't get attribute 'CustomNMF' on <module '__main__' from '/Users/cricket/Documents/ONline classes/A6 - Stackoverflow/Tag-generator-Stackoverflow/app.py'
我的问题是我在哪里错过了 import CustomNMF 或任何其他可以使它工作的东西?
这是我正在做的一个烧瓶项目,结构是:
项目文件夹:
+ app.py
+ app (sub-folder)
++ __init__.py
++ views.py
++ CustomNMF.py
++ and other things...
app.py的内容:
from app import app
if __name__ == "__main__":
app.run(debug=True)
__init__.py的内容
from flask import Flask
app = Flask(__name__)
from app import views
views.py的内容:
....
from app.CustomNMF import CustomNMF
customNMF = CustomNMF() #That works fine !
def loadpickle(filename = 'customNMF.pickle'):
with open(os.path.join(os.getcwd(),'app', filename), 'rb') as f:
return pickle.load(f)
customNMF = loadpickle('customNMF.pickle') #Line that is generating the error :-(
....
CustomNMF.py 的内容:(从用于创建 class 的笔记本中简单复制粘贴)
class CustomNMF(BaseEstimator, TransformerMixin):
def __init__(self,popularitytags=None, **params):
self.popularitytags = popularitytags
.......
我相信这对你们大多数人来说是显而易见的,而解决方案只是我缺少的一个小细节。任何帮助将不胜感激。
【问题讨论】:
-
customNMF = CustomNMF() #That works fine !- 真的吗?你怎么知道的?如果它确实有效,您是否意识到您正在用另一个名称掩盖CustomNMF名称?
标签: python flask import pickle