Redash 二开 - 后端环境搭建

一.操作系统选择

官方文档有一句话:Windows users: while it should be possible to run Redash on a Windows machine, we don’t know anyone who did this and lived to tell. We recommend using some sort of a virtual machine or Docker in such case. 当时没有注意,后面掉在坑里了,若对 Redash 进行二开,务必不要使用 Windows:第一点 Redash 依赖的 Python 包在Windows安装,本地编译的时候各种报错,不过还算都能解决。最要命的是第二点,某些包依赖的标准库模块,Windows 上没有,比如 group pwd 等。经过一下午和包安装的战斗,总算解决了,最后信心满满的想跑起来的时候,各种模块找不到。

在这里推荐的操作系统是 OSX,因为各种生产力工具都支持 OSX,如果没有这个条件推荐 Linux,Ubuntu 或者国产 Deepin,因为公司的 mac 都分配完了,所以我选择了安装一个 Deepin ,就在本机安装,和 Windows 10 组个双系统。如果说装 Deepin 尽量使用固态。安装教程传送门 ,安装好以后会自动设置双系统引导。

二.必要环境安装

1.Git

apt-get install git

安装文档

2.Python 3.7

在 Redash 9.0.x 版本支持的 Python 最高版本为 3.7.9,因为 3.8 对一些模块有了改变,无法使用。

请根据 官方文档 进行安装

3.可视化 Git 管理工具

OSX 推荐 SourceTree , Linux 推荐 SmartGit

4.Navicat Premium 15

Navicat Premium 支持多种数据源,是非常方便的可视化 DBMS

5.Pycharm

特别说明:Deepin 可以在 应用商店安装 微信,但是钉钉无法安装,可以使用网页版 https://im.dingtalk.com/

对于 Deepin 可能遇到的一些问题:

三.安装 Redash 依赖

通过 pip 安装依赖前请务必执行以下命令安装软件包,否则安装过程可能出现几个包报错,

#pyodbc https://github.com/mkleehammer/pyodbc/issues/276
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev
sudo apt-get install unixodbc-dev #pycrypto https://stackoverflow.com/questions/50080459/failed-installing-pycrypto-with-pip
sudo apt-get install build-essential libssl-dev libffi-dev python3-dev #psycopg https://stackoverflow.com/questions/55581941/getting-error-when-installing-psycopg2-2-8-1
sudo apt-get install libpq-dev #mysqlclient https://pypi.org/project/mysqlclient/1.3.14/
sudo apt-get install python-dev default-libmysqlclient-dev

使用 Pycharm 打开 Redash 文件夹,选择菜单:File->Settings->Project Interpreter 创建虚拟环境

创建好虚拟环境后,在 Pycharm 的 Terminal 执行

pip -r requirements.txt -r requirements_dev.txt -r requirements_all_ds.txt

必须全部安装成功,若一个没有安装成功就去Google查找解决方案。

四.调试和运行配置

1.编辑数据库连接信息

打开 项目根目录/redash/settings/__init__.py

修改 redis 地址:

"REDASH_REDIS_URL", os.environ.get("REDIS_URL", "redis://<redis ip>:6379/<redis db>")

修改 postgresql 地址:

"REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql://<用户名>:<密码>@<ip>:5432/<数据库名称>")

2.执行数据库迁移

在 Terminal 输入:

./manage.py database create_tables

3.启动RQ

在 Terminal 新开两个选项卡,分别执行以下命令来启动

# RQ Worker
./manage.py rq worker
#RQ Scheduler
./manage.py rq scheduler

Worker:

Scheduler:

4.设置调试配置

直接运行Server的命令是:

./manage.py runserver --debugger --reload

这样无法调试,调试需要添加配置:

这样启动访问 https://localhost:5000 发现UI很简陋,需要我们自己启动前端项目。

五.启动前端项目

1.安装 Node

2.安装依赖

npm i -g @babel/cli
npm i -g @babel/core npm install

3.运行

在 Pycharm Terminal 新建一个选项卡,输入 npm run watch 即可启动

六.结束

安装过程全是辛酸泪,从最开始的 Windows 上折腾 Python 依赖的问题,到最后确实无法运行的结果,然后又装 Deepin 从零搭建开发环境到运行起来(花了一个下午),几经波折,终究是如愿以偿。此间遇到的问题,全都写在文中了,希望能帮到大家。最后发一张 Deepin 系统和成功跑起来的 Redash 的图。

Redash 二开 - 后端环境搭建的更多相关文章

  1. 总结Selenium自动化测试方法(二)测试环境搭建

    (接上期内容) 二.测试环境搭建 1.安装python 现在python3.0比python2.0多了一些改进的功能(详见http://zhidao.baidu.com/link?url=3sT1g7 ...

  2. C# NX二次开发环境搭建

    在网上看到一篇C#二次开发环境搭建的文章:NX二次开发-使用NXOPEN C#手工搭建开发环境配置 ,写得非常好.我按照文章操作,过程中遇到几个问题,把问题分享给大家,希望对各位有帮助. 注意三点: ...

  3. 第一周博客之二---OA项目环境搭建及开发包部署

    OA项目环境搭建 一个项目想要能够在开发人员打包好项目包之后进行测试,就必须进行项目测试环境的搭建,要根据开发工程师的开发环境采用不同的测试环境,以下只是浅谈下Java项目OA(办公自动化平台)的环境 ...

  4. Flutter入门教程(二)开发环境搭建

    学习Flutter,首先需要搭建好Flutter的开发环境,下面我将一步步带领大家搭建开发环境并且成功运行flutter项目. Flutter环境配置主要有这几点: 系统配置要求 Java环境 Flu ...

  5. 从零学习Fluter(二):win10上环境搭建以及模拟器和真机调试

    今天呢,又继续看了flutter 弗拉特 的东西,绝的这个东西绝对是比ReactNative更高一层次的,在2018年12月5好,flutter的第一个stale1.0发布了,我们在GitHub上可以 ...

  6. Vue项目二、vue环境搭建以及Vue-cli使用及详解

    一.Vue多页面应用的环境搭建 每一次页面跳转的时候,后台服务器都会给返回一个新的html文档,这种类型的网站也就是多页网站,也叫做多页应用. 环境的搭建如下,在页面中引入如下框架 <scrip ...

  7. day75:luffy:路飞学城项目后端环境搭建&Git相关知识点

    目录 1.Xadmin 1.Xadmin介绍 2.Xadmin安装 3.Xadmin的使用 2.项目环境搭建 1.外部依赖 2.依赖包安装 3.搭建项目 3.Git 4.日志配置 5.异常处理 6.创 ...

  8. 二.django项目环境搭建

    Ⅰ.web框架介绍 1.socket 服务端 1)客户端(手机中各种app.浏览器)是用来与服务端(网站的服务器程序)进行交互的 2)服务端类似发电厂,客户端类似电器,socket类似插座,互联网的数 ...

  9. 基于vlc sdk的二次开发--环境搭建、编译

    前言 关于 搭建.编译VLC,不同的平台有不同的方法,可以参考wiki. 其中在windows下编译VLC有两种方式,MSYS+MinGW和CygWin.通过测试,最后决定采用MSYS+MinGW搭建 ...

随机推荐

  1. 【Android】java生成炫酷验证码,不区分大小写。登陆,发送手机验证码,防止注册机,android开发

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下 ...

  2. [PyTorch 学习笔记] 5.1 TensorBoard 介绍

    本章代码: https://github.com/zhangxiann/PyTorch_Practice/blob/master/lesson5/tensorboard_methods.py http ...

  3. Codeforces1312E Array Shrinking 区间DP

    题意 给你一个数组\(a\),只要满足\(a_i=a_{i+1}\)就可以将这两个元素合并成一个值为\(a_i+1\)的元素,问数组最小长度. 解题思路 记得之前某场的F和这题差不多,当时好像是相邻且 ...

  4. Kubernetes v1.12/v1.13 二进制部署集群(HTTPS+RBAC)

    官方提供的几种Kubernetes部署方式 minikube Minikube是一个工具,可以在本地快速运行一个单点的Kubernetes,尝试Kubernetes或日常开发的用户使用.不能用于生产环 ...

  5. 如何《快速搭建LAMP环境》

    阿里云体验平台简介 阿里云开发者实验室提供免费云资源和丰富的场景化实践,旨在帮助开发者在学习应用技术,了解阿里云产品的特性. 教程介绍 本教程引用自阿里云体验实验室介绍如何快速搭建Docker环境,并 ...

  6. jni之jni与jna的比较

    java开发过程中会遇到需要调用c/c++动态库(windows平台的dll和linux平台的so)的情况,可以使用JNI或者JNA技术. JNA基于JNI技术开发,主要在上层作了类型自动转换的封装, ...

  7. 大神Java8写了一段逻辑,我直呼看不懂

    业务背景 首先,业务需求是这样的,从第三方电商平台拉取所有订单,然后保存到公司自己的数据库,需要判断是否有物流信息,如果有物流信息,还需要再进行上传. 而第三方接口返回的数据是 JSON 格式的,其中 ...

  8. JS数据类型及常用操作

    1.字符串 2.数字类型 3.布尔类型 4.数组类型 5.字典

  9. k8s volume存储卷

    k8s volume存储卷   介绍 volume存储卷是Pod中能够被多个容器访问的共享目录,kubernetes的volume概念,用途和目的与docker的volume比较类似,但两者不能等价, ...

  10. Ubuntu16环境安装和使用NFS

    通过NFS服务我们可以方便的读写服务器上的文件,一起来实战Ubuntu16环境安装和使用NFS: 文章概要 本次实战由以下步骤组成: 列举环境信息: 在192.168.119.128安装NFS服务,将 ...