plotly-dash 简单使用(一)
plotly-dash 是一个很不错的dashboard 开发平台,基于python 编写,提供了很便捷的dashboard 开发模型
同时扩展上也比较灵活我们可以编写自己的组件。
以下是一个简单的项目以及集成docker 运行(实际通过gunicorn,uwsgi运行应用)
本地方式运行
使用venv 进行python 环境管理
- 初始化venv 项目
python3 -m venv venv
- 激活环境
source venv/bin/activate
- 添加依赖
pip install dash==1.1.1
pip install dash-daq==0.1.0
- 简单代码
# -*- coding: utf-8 -*-
import dash
import flask
import dash_core_components as dcc
import dash_html_components as html
server = flask.Flask(__name__)
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
server = app.server
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for Python.
'''),
dcc.Graph(
id='example-graph',
figure={
'data': [
{'x': [1, 2, 3], 'y': [4, 1, 2], 'type': 'bar', 'name': 'SF'},
{'x': [1, 2, 3], 'y': [2, 4, 5], 'type': 'bar', 'name': u'Montréal'},
],
'layout': {
'title': 'Dash Data Visualization'
}
}
)
])
if __name__ == '__main__':
app.run_server(debug=False)
- 启动
python app.py
- 效果
* Serving Flask app "app" (lazy loading)
* Environment: production
WARNING: This is a development server. Do not use it in a production deployment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:8050/ (Press CTRL+C to quit)
docker 运行
docker 提供了两种方式的运行,gunicorn以及uwsgi
- docker-compose 文件
version: "3"
services:
dash-gunicorn:
build: ./
image: dalongrong/dash-demo:gunicorn
ports:
- "5000:5000"
dash-uwsgi:
build:
context: ./
dockerfile: Dockerfile-uwsgi
image: dalongrong/dash-demo:uwsgi
ports:
- "5001:5001"
- gunicorn 方式dockerfile
FROM python:3.5.7-alpine
RUN pip install dash==1.1.1 \
&& pip install dash-daq==0.1.0 \
&& pip install gunicorn
WORKDIR /app
COPY . /app
EXPOSE 5000
ENTRYPOINT [ "gunicorn","-b",":5000","app:server"]
- uwsgi 方式dockerfile
FROM python:3.5.7-alpine
RUN apk add --no-cache uwsgi uwsgi-python3 uwsgi-http
RUN pip install dash==1.1.1 \
&& pip install dash-daq==0.1.0
WORKDIR /app
COPY . /app
EXPOSE 5001
ENTRYPOINT [ "uwsgi","--plugins","http,python3","--http","0.0.0.0:5001","--module","app:server","--pythonpath","/usr/local/lib/python3.5/site-packages"]
- 运行
docker-compose build
docker-compose up -d
- 效果
- 几点说明
使用uwsgi的时候碰到了pip 包查找的问题,问题如下:
Traceback (most recent call last):
dash-uwsgi_1 | File "./app.py", line 2, in <module>
dash-uwsgi_1 | import dash
dash-uwsgi_1 | ModuleNotFoundError: No module named 'dash'
dash-uwsgi_1 | unable to load app 0 (mountpoint='') (callable not found or import error)
dash-uwsgi_1 | *** no app loaded. going in full dynamic mode ***
解决方法,添加pythonpath 如下:
ENTRYPOINT [ "uwsgi","--plugins","http,python3","--http","0.0.0.0:5001","--module","app:server","--pythonpath","/usr/local/lib/python3.5/site-packages"]
uwsgi 只安装了uwsgi python 无法运行,问题
uwsgi http is ambiguous
问题原因,因为我是通过alpine 的apk 安装的,需要添加http 以及python 的支持,解决方法
RUN apk add --no-cache uwsgi uwsgi-python3 uwsgi-http
注意对于python模块的支持需要uwsgi-python3 因为我们使用的是python3 的基础镜像
说明
plotly-dash 功能很强大,开发模型也比较简单,后边会写一些相关的学习
参考资料
https://stackoverflow.com/questions/35460816/uwsgi-http-is-ambiguous
https://uwsgi-docs.readthedocs.io/en/latest/Python.html
https://dash.plot.ly/installation
https://github.com/rongfengliang/plot_dash_docker_running
plotly-dash 简单使用(一)的更多相关文章
- Python绘图工具Plotly的简单使用
1.Plotly被称为史上最好的绘图工具之一,为了更好的展示金融数据的复杂性. Plotly的官方网站为:https://plot.ly/ python量化的关键是金融数据可视化,无论是传统的K线图, ...
- Dash by Plotly 学习笔记
一.介绍 1.dash 是什么 dash 是一个基于 Flask (Python) + React 的 web 框架. 入门指南:https://dash.plot.ly/getting-starte ...
- 【python】使用plotly生成图表数据
安装 在 ubuntu 环境下,安装 plotly 很简单 python 版本2.7+ pip install plotly 绘图 在 plotly 网站注册后,可以直接将生成的图片保存到网站上,便于 ...
- 一些开源的dashboard 解决方案
简单收集了以下开源dashboard 的项目,记录下 plotly-dash 基于python 的dash 开发工具,很不错 项目地址 https://github.com/plotly/dash k ...
- Python开源项目Top30
原文地址:https://www.cnblogs.com/stoker/p/9101825.html No 1:Home-assistant (v0.6+) 基于Python 3的开源家庭自动化平台[ ...
- 10个顶级Python实用库,推荐你试试!
为什么我喜欢Python?对于初学者来说,这是一种简单易学的编程语言,另一个原因:大量开箱即用的第三方库,正是23万个由用户提供的软件包使得Python真正强大和流行. 在本文中,我挑选了15个最有用 ...
- Streamlit:快速数据可视化界面工具
目录 Streamlit简介 Streamlit使用指南 常用命令 显示文本 显示数据 显示图表 显示媒体 交互组件 侧边栏 缓存机制 Streamlit使用Hack Streamlit的替代品 相关 ...
- 数据处理一条龙!这15个Python库不可不知
如果你是一名数据科学家或数据分析师,或者只是对这一行业感兴趣,那下文中这些广受欢迎且非常实用的Python库你一定得知道. 从数据收集.清理转化,到数据可视化.图像识别和网页相关,这15个Python ...
- 所有selenium相关的库
通过爬虫 获取 官方文档库 如果想获取 相应的库 修改对应配置即可 代码如下 from urllib.parse import urljoin import requests from lxml im ...
- 野路子码农系列(3)plotly可视化的简单套路
又双叒叕要跟客户汇报了,图都准备好了吗?matplotlib出图嫌丑?那用用plotly吧,让你的图看上去经费爆炸~ P1 起因 第一次接触plotly这个库是在我们做的一个列车信号数据挖掘的项目里, ...
随机推荐
- typing类型注解库
简介 动态语言的灵活性使其在做一些工具,脚本时非常方便,但是同时也给大型项目的开发带来了一些麻烦. 自python3.5开始,PEP484为python引入了类型注解(type hints),虽然在p ...
- 第一章 Maven 安装配置
Maven基于(POM)项目对象模型,通过一小段描述信息来管理项目的构建.文档.和报告的项目管理软件,类似于php 的管理构建工具composer. 有关详细的Maven学习,可以参考学习https: ...
- 2019 哔哩哔哩java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.哔哩哔哩等公司offer,岗位是Java后端开发,因为发展原因最终选择去了哔哩哔哩,入职一年时间了,也成为了面 ...
- css之纯css实现流程导航效果
:::tip 使用纯css线上 流程导航效果. 本文统一采取 flex 布局 ,你也可以采用其他布局实现,核心原理不变 ::: ## 方法一 利用裁剪 该方法IE下不支持 利用裁剪 clip ...
- 在现有的mysql主从基础上,搭建mycat实现数据的读写分离
环境准备:MySQL服务器做好主从复制:centos6的系统 主:192.168.164.131 从:192.168.164.144 mycat服务器:192.168.164.141 a.将MySQL ...
- Odoo采购模块
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10825976.html 一:采购过程 采购业务可以分为以下几个流程: 1)建立供应商信息 企业需要与供应商建 ...
- C++编写动态库(.DLL)给C#调用方法
1.在头文件中按照如下格式编写函数申明 extern "C" __declspec(dllexport) double __stdcall Add(double a, double ...
- (四)Kubernetes 资源清单定义
Kubernetes常用资源对象 依据资源的主要功能作为分类标准,Kubernetes的API对象大体可分为五个类别,如下: 类型 名称 工作负载(Workload) Pod.ReplicaSet.D ...
- 蓝桥杯如何训练?(附VIP题库)
https://www.dotcpp.com/ 给大家介绍下蓝桥杯,是近几年可以说国内名气最大的程序设计类比赛了 相比国际赛事ACM,蓝桥杯入门简单.中文答题.拿奖率高,更适合国内大众化参加,近几年不 ...
- Pat 1003 甲级
#include <cstdlib> #include <cstring> #include <iostream> #include <cstdio> ...