Flask + Post + Get + Структура папок - PullRequest
0 голосов
/ 15 апреля 2020

Мой flask код, структура папок и отслеживание ошибок прилагаются ниже. Я не получаю модуль с именем Flask ошибка

`from flask import render_template, request, jsonify
import Flask
import numpy as np
import traceback
import pickle
import pandas as pd

# App definition
app = Flask(__name__,template_folder='templates')

# importing models
with open('C:/Users/xyz/Temp_Pred/temp_pred.pkl', 'rb') as f:
   regressor = pickle.load (f)

with open('C:/Users/xyz/Temp_Pred/lm_columns_columns.pkl', 'rb') as f:
   model_columns = pickle.load (f)

@app.route('/')
def welcome():
   return "Temperature Prediction"

@app.route('/predict', methods=['POST','GET'])
def predict():

   if Flask.request.method == 'GET':
       return "Prediction page"

   if Flask.request.method == 'POST':
       try:
           json_ = request.json
           print(json_)
           query_ = pd.get_dummies(pd.DataFrame(json_))
           query = query_.reindex(columns = model_columns, fill_value= 0)
           prediction = list(regressor(query))

           return jsonify({
               "prediction":str(prediction)
           })

       except:
           return jsonify({
               "trace": traceback.format_exc()
               })

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

Folder structure for flask app `

Ошибка отслеживания статистики` (база) C: \ Users \ xyz> cd C: \ Users \ xyz \ Temp_Pred \ myflaskenv \ Scripts

(base) C: \ Users \ xyz \ Temp_Pred \ myflaskenv \ Scripts> активировать

(myflaskenv) ( base) C: \ Users \ xyz \ Temp_Pred \ myflaskenv \ Scripts> cd C: \ Users \ xyz \ Temp_Pred

(myflaskenv) (base) C: \ Users \ xyz \ Temp_Pred > pip install flask Требование уже выполнено: flask в c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (1.1.2) Требование уже выполнено: нажмите> = 5.1 в c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (от flask) (7.1.1) Требование уже выполнено: Jinja2> = 2.10.1 в c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (от flask) (2.11.2) Требование уже выполнено: Werkzeug> = 0,15 в c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (от flask) (1,0 .1) Требование уже выполнено: его опасно> = 0,24 в * 10 74 *: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (от flask) (1.1.0) Требование уже выполнено: MarkupSafe> = 0,23 в c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages (из Jinja2> = 2.10.1 -> flask) (1.1.1) ВНИМАНИЕ: Вы используете версию 19.2.3 pip, однако версия 20.0.2 доступна. Вам следует подумать об обновлении с помощью команды python -m pip install --upgrade pip.

(myflaskenv) (base) C: \ Users \ xyz \ Temp_Pred> set FLASK_APP = app.py

(myflaskenv) (базовый) C: \ Users \ xyz \ Temp_Pred> set FLASK_ENV = разработка

(myflaskenv) (базовый) C: \ Users \ xyz \ Temp_Pred> flask run * Обслуживание Flask app "app.py" (отложенная загрузка) * Среда: разработка * Режим отладки: включен * Перезапуск со статом * Отладчик активен! * PIN-код отладчика: 239-673-122 * Работает на http://127.0.0.1: 5000 / (нажмите CTRL + C, чтобы выйти) 127.0.0.1 - - [15 / Apr / 2020 10:55:33] «[35m [1mGET / HTTP / 1.1 [0m» 500 - трассировка (последний последний вызов): файл «C: \ Users \ xyz \ Temp_Pred \ app.py», строка 2, в импорте Flask ModuleNotFoundError: Нет модуля с именем 'Flask'

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): файл "c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py ", строка 338, в call self._flush_bg_loading_exception () Файл" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py ", строка 326, в файле _flush_bg_loading_exception reraise (* exc_info)" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask_compat.py ", строка 39, в ререйз поднять значение Файл "c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py", строка 314, в файле _load_app self._load_unlocked () "c: \ users \ хуг \ temp_pred \ myflasken v \ lib \ site-packages \ flask \ cli.py ", строка 330, в _load_unlocked self._app = rv = self.loader () Файл" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site- packages \ flask \ cli.py ", строка 388, в приложении load_app = locate_app (self, import_name, name) Файл" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py ", строка 247, в locate_app" \ n \ n {tb} ". формат (имя = имя_модуля, tb = traceback.format_ex c ()) flask .cli.NoAppException: при импорте« app »возникает ошибка ImportError было поднято:

Traceback (последний вызов был последним): файл "c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py", строка 240, в locate_app import (имя_модуля) Файл "C: \ Users \ xyz \ Temp_Pred \ app.py", строка 2, в импорте Flask ModuleNotFoundError: Нет модуля с именем 'Flask' 127.0.0.1 - - [15 / Apr / 2020 10:55:35] "[37mGET /?debugger=yes&cmd=resource&f=style.css HTTP / 1.1 [0m" 200 - 127.0.0.1 - - [15 / Apr / 2020 10:55:35] "[37mGET /?debugger=yes&cmd=resource&f=jquery.js HTTP / 1.1 [0m "200 - 127.0.0. 1 - - [15 / Apr / 2020 10:55:35] "[37mGET /?debugger=yes&cmd=resource&f=debugger.js HTTP / 1.1 [0m" 200 - 127.0.0.1 - - [15 / Apr / 2020 10:55:35] "[37mGET /?debugger=yes&cmd=resource&f=ubuntu.ttf HTTP / 1.1 [0m" 200 - 127.0.0.1 - - [15 / апр / 2020 10:55:36] "[37mGET /?debugger=yes&cmd=resource&f=console.png HTTP / 1.1 [0m" 200 - 127.0.0.1 - - [15 / Apr / 2020 10:55: 36] "[37mGET /?debugger=yes&cmd=resource&f=console.png HTTP / 1.1 [0m" 200 - 127.0.0.1 - - [15 / Apr / 2020 10:56:25] "[35m [1mGET /вести прогноз HTTP / 1.1 [0m »500 - трассировка (последний вызов был последним): файл« C: \ Users \ xyz \ Temp_Pred \ app.py », строка 2, при импорте Flask ModuleNotFoundError: нет модуля) с именем 'Flask'

Во время обработки вышеупомянутого исключения произошло другое исключение:

Traceback (последний вызов был последним): файл "c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py ", строка 343, в call rv = self._load_unlocked () Файл" c: \ users \ xyz \ temp_pred \ myflask env \ lib \ site-packages \ flask \ cli.py ", строка 330, в _load_unlocked self._app = rv = self.loader () Файл" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site- packages \ flask \ cli.py ", строка 388, в приложении load_app = locate_app (self, import_name, name) Файл" c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py ", строка 247, в locate_app" \ n \ n {tb} ". формат (имя = имя_модуля, tb = traceback.format_ex c ()) flask .cli.NoAppException: при импорте« app »возникает ошибка ImportError было поднято:

Трассировка (последний вызов был последним): файл "c: \ users \ xyz \ temp_pred \ myflaskenv \ lib \ site-packages \ flask \ cli.py", строка 240, в locate_app import (имя_модуля) Файл "C: \ Users \ xyz \ Temp_Pred \ app.py", строка 2, в импорте Flask ModuleNotFoundError: Нет модуля с именем 'Flask' `

1 Ответ

1 голос
/ 15 апреля 2020

Добро пожаловать на Flask разработку!

Как указано в комментарии, вы хотите from flask import Flask.

Объяснение: flask - это модуль (установленный через pip), из которого вы хотите использовать класс Flask

Кроме того, в вашем маршруте вам необходимо изменить
if Flask.request.method ==
на
if app.request.method ==

Объяснение: в app=Flask() вы создали объект - экземпляр класса Flask, и с этого момента вы всегда будете ссылаться на этот объект

Кроме того, я бы порекомендовал переименовать ваше сообщение во что-то вроде Нет модуля с именем 'Flask' error , которая лучше объясняет вашу проблему и может помочь будущим разработчикам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...