После запуска приложения Flask ничего не запускается - PullRequest
1 голос
/ 17 марта 2020

Вот код Flask, который я пытаюсь запустить:

import threading
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
    df = pd.read_csv('data').drop('Open', axis=1)
    chart_data = df.to_dict(orient='records')
    chart_data = json.dumps(chart_data, indent=2)
    data = {'chart_data': chart_data}
    return render_template("index.html", data=data)
app.run(host="0.0.0.0",port=2000,debug=True)

Приведенный выше код работал без ошибок, поэтому я включил свой тензорный поток после этого. Но ничего не работает после app.run().

import threading
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def index():
    df = pd.read_csv('data').drop('Open', axis=1)
    chart_data = df.to_dict(orient='records')
    chart_data = json.dumps(chart_data, indent=2)
    data = {'chart_data': chart_data}
    return render_template("index.html", data=data)
app.run(host="0.0.0.0",port=2000,debug=True)
import tensorflow as tf
print("Tensorflow version: ",tf.__version__)

Я пытался запустить приложение в отдельном потоке, но оно совсем не работает.

threading.Thread(app.run(host="0.0.0.0",port=2000,debug=True)).start()

Пожалуйста, посоветуйте мне, как я могу запустить код после app.run (). РЕДАКТИРОВАНИЕ: После предложения от
Я попробовал это:

import threading
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/result")
def index():
    df = pd.read_csv('data').drop('Open', axis=1)
    chart_data = df.to_dict(orient='records')
    chart_data = json.dumps(chart_data, indent=2)
    data = {'chart_data': chart_data}
    return render_template("index.html", data=data)
app.run(host="0.0.0.0",port=2000,debug=True)
@app.route("/")
import tensorflow as tf

И я получил следующую ошибку:

    import tensorflow as tf
         ^
SyntaxError: invalid syntax

Ответы [ 2 ]

2 голосов
/ 17 марта 2020

Flask s app.run(..) блокируется. Если вы хотите использовать Tensorflow, импортируйте его до запуска сервера и вызывайте logi c в маршруте.

Редактирование после комментариев

Я пытаюсь запустить обучение и хочу чтобы отобразить вывод, используя шаблон flask.

Опция 1

Похоже, вы пытаетесь сделать что-то похожее на Tensorboard. Ты знаешь об этом? https://www.tensorflow.org/tensorboard/get_started

Вариант 2

В противном случае, выполнить обучение до app.run(...). Недостатком является то, что сервер не запустится, пока не будет завершено обучение (что может быть хорошо).

Опция 3

  • Переместите свои учебные логи c в отдельный файл python , иметь результаты экспорта обучения в текстовый файл.
  • В файле вашего сервера напишите маршрут для загрузки этого файла, проанализируйте его и заполните свой шаблон данными из него.

Этот подход очень прост в настройке (не вмешиваясь в Threading или Process), просто запустите каждый файл в отдельной консоли.

(Пожалуйста, обратите внимание, что это в значительной степени то, что делает Tensorboard, просто гораздо более продвинутым образом)

1 голос
/ 17 марта 2020

Просто распечатайте перед запуском сервера.

Вам все равно придется импортировать тензорный поток, прежде чем использовать его, поэтому тоже перенесите импорт в верхнюю часть

import json 
from flask import Flask, render_template
import tensorflow as tf
import pandas as pd 

app = Flask(__name__)
... 
print("Tensorflow version: ",tf.__version__)

app.run(host="0.0.0.0",port=2000,debug=True)

Однако в качестве маршрута имеет больше смысла

@app.route('/tf-version') 
def tf_version():
    return tf.__version__
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...