无法使用flask run运行Python应用程序

2024-10-03 06:21:40 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我的Python文件名application.py。当我用python/application.py在终端中运行这个文件时,出现了一个问题。它工作正常,并给出了结果。但是当我尝试使用flask run时,它不起作用,并给出错误,下面是我的错误

Error :-
    
**AttributeError: module '__main__' has no attribute 'LemmaTokenizer'
127.0.0.1 - - [22/Aug/2020 23:31:05] "[35m[1mGET /predict?botinput=hello HTTP/1.1[0m" 500 -**
import os
from flask import Flask, request, Response
import joblib
from nltk.stem import WordNetLemmatizer
from nltk import word_tokenize 
import pandas as pd



app=Flask(__name__)

@app.route('/predict')
def predict():
    le=joblib.load('label_encode.tf')
    pipeline=joblib.load('chatbot_pipeline.mdl')
    
    bot_input=request.args['botinput']
    
    X_input_vect=pipeline["vect"].transform([bot_input]).toarray()
    y_input_pred=(pipeline["model"].predict(X_input_vect))
    y_input_pred_decoded=le.inverse_transform(y_input_pred)
    responsesdf=pd.read_pickle('responses.df')
    input_response=responsesdf[responsesdf["tag"]==y_input_pred_decoded[0]]["response"].values[0]
    
    
    #responses=flask.Markup(bot_reply=bot_input)
    resp=Response("{reply:'"+input_response+"'}",status=200, mimetype='application/json')
    return resp

class LemmaTokenizer:
    def __init__(self):
            self.wnl = WordNetLemmatizer()
    def __call__(self, doc):
        return [self.wnl.lemmatize(t) for t in word_tokenize(doc)]


if __name__ == "__main__":
    app.run(port=5000)

Tags: fromimportselfappflaskinputpipelineapplication