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代码工具类。判断当前网络是否连接并请求下载图片

    package cc.jiusan.www.utils; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; ...

  2. 英文ubuntu中的乱码,输入法问题 、mint字体发虚

    英文ubuntu文本文件默认编码是utf-8,windows下是gbk,所以产生乱码问题. 1.前言 运行命令查看系统编码 $locale 结果如下: LANG=en_US.UTF-8 LANGUAG ...

  3. 【已学完】UGUI Schedule

    章节 内容 签到 Unity4.6 New UI(UGUI) 1.UGUI概述与Canvas画布介绍(一) 5月14日 2.Canvas画布介绍(二) 5月14日 3.Text控件 5月14日 4.I ...

  4. CodeForces - 505B-Mr. Kitayuta's Colorful Graph(暴力)

    Mr. Kitayuta has just bought an undirected graph consisting of n vertices and medges. The vertices o ...

  5. Construct a Matrix (矩阵快速幂+构造)

    There is a set of matrixes that are constructed subject to the following constraints: 1. The matrix ...

  6. [第二届全国中学生网络安全竞赛]bypass

    前几天拿到了线下赛的源码,做做看.这道主要是命令执行的黑名单绕过 先看看给出的代码: <?php highlight_file(__FILE__); error_reporting(0); $b ...

  7. 「面向 offer 学算法」笔面试大杀器 -- 单调栈

    目录 前言 单调栈 初入茅庐 小试牛刀 打怪升级 出师试炼 前言 单调栈是一种比较简单的数据结构.虽然简单,但在某些题目中能发挥很好的作用. 最近很多大厂的笔试.面试中都出现了单调栈的题目,而还有不少 ...

  8. Java单例模式的实现与破坏

    单例模式是一种设计模式,是在整个运行过程中只需要产生一个实例.那么怎样去创建呢,以下提供了几种方案. 一.创建单例对象 懒汉式 public class TestSingleton { // 构造方法 ...

  9. python 3 for嵌套

  10. 2020JavaWeb之宝塔安装tomcat+nginx关于jsp处理问题

    关于nginx反向代理,是将jsp文件转交给tomcat处理,nginx主要处理静态资源,nginx处理静态资源的效率相对于tomcat高的多 在配置文件如下部分: location ~ \.jsp$ ...