Попытка развернуть приложение Dash на сервере Ubuntu 18.04. Любое приложение-червь повышает внутреннюю ошибку сервера. Никакого простого флеш-приложения нет. Мне удалось сузить проблему, импортировав компоненты штрих-кода или dash-html-компоненты в скрипт приложения Flask, фактически не используя их. Это вызывает проблему. По-видимому, импортировать эти пакеты достаточно, чтобы выбросить ошибку сервера.
Все пакеты штрих-кода были правильно установлены вместе с pip. Я использую apache2 и mod_wsgi для публикации приложения.
Изменить: приведенная выше ошибка была неправильной, так как компоненты dash-core должны быть написаны dash_core_components.
Edit2: Я втягиваю первое редактирование. Наконец, я могу заключить, что импорт dash_html_components в приложении Flask (только для тестирования) вызывает ошибку сервера.
Это работает:
from flask import Flask
import sys
app = Flask(__name__)
@app.route('/')
def homepage():
return "Hello"
if __name__ == "__main__":
app.run()
Это вызывает ошибку внутреннего сервера:
import dash
import dash_core_components as dcc
import dash_html_components as html
app = dash.Dash()
app.layout = html.Div(children=['hello'])
server = app.server
if __name__ == '__main__':
app.run_server(debug=True)
Основываясь на приведенном выше объяснении, я делаю вывод, что ошибка dash_html_components. Есть ли объяснения для этого?
Хорошо. В моем тестировании приложение Flask работало отлично. Одно и то же приложение Flask с импортной тире или импортными параметрами dash_core_components, которые были случайно выбраны в обработанном порядке. Как только я бросил импорт dash_html_components, я получил ошибку сервера. Все пакеты штрих-кода были правильно установлены с помощью pip, поэтому я не знаю, почему просто импортировать html-компоненты приведет к ошибке сервера.
Я исправил свою проблему, просто выполнив жесткий сброс сервера Ubuntu 18.04, снова пройдя все шаги, установив python3.6, pip3.6, apache2, wsgi и тире пакетов. На этот раз приложения с тире не создают ошибку сервера.
Я не пробовал использовать чертовое приложение на сервере Ubuntu 18.04, но я успешно развернулся на герой с автономным сервером WSGI (gunicorn). Что касается ошибки вашего сервера, я не совсем уверен, откуда это может произойти (возможно, версия времени исполнения python?). Одна вещь, которую вы должны попробовать, - использовать флягу для создания сервера, а затем указать сервер при создании приложения-черточки:
import flask
import dash
server = flask.Flask(__name__)
app = dash.Dash(__name__, server=server)
Если вы отчаянно пытаетесь развернуть свое приложение, вы можете временно использовать героку, они предлагают очень простой способ развертывания фляжных приложений. Одно предостережение, убедитесь, что вы используете версию исполнения python2, а не python3!
Для вашего удобства здесь представлены графические документы по развертыванию тире приложений. Существует простой пример развертывания heroku https://dash.plot.ly/deployment
import dash_core_components
с_
not-
также это не приложение-приборная панель, оно использует только колбу.