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. Java 与 Mysql连接,并分页显示

    这是我第一个上规模的Java项目,我们必须在一周内完成的作业,零基础学习Java,网上收集了很多资料,逐渐对面向对象的思想有所了解,但还是半灌水,后期打算结合项目系统地学习一遍Java.老师布置的任务 ...

  2. 百度网盘,实现免费不限速,10M/S?

    前段时间,各大消息都说百度网盘实现了免费和不限速的『提速模式』,可以达到10M/S,于是我带着好奇想要进行测试一下,探一探真假,毕竟只有自己动手实践才知道真理,结果,辜负众望,一向对用户限速还限制上传 ...

  3. CentOS 7/8修改系统运行级别

    CentOS 7/8修改系统运行级别   CentOS 5. CentOS 6可以通过修改配置文件/etc/inittab 参数,从而修改系统运行级别,切换系统的runlevel,但是从CentOS ...

  4. Q200510-02: 重复的DNA序列 程序解法

    问题:  重复的DNA序列 所有 DNA 都由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”.在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有帮助. 编 ...

  5. Java使用ArrayList实现“群主发红包”功能

    群主发普通红包,某群有多名成员,群主给成员发普通红包,普通红包的规则: 群主的一笔金额,从群主余额中扣除,平均分成n等份,让成员领取: 成员领取红包后,保存到成员余额中. 请根据描述,完成案例中所有类 ...

  6. js中数组扁平化处理

  7. Linux下vim的安装及配置

    目录 一.vim的下载 二.vim的基本知识 三.vim的基本配置 四.vim与外部文件的复制粘贴 一.vim的下载 Ubuntu系统,输入命令: sudo apt install vim Cento ...

  8. JS基础回顾_函数

    函数 不要使用C风格的大括号 // log function return1() { return { name: 'oceans', } } function return2() { return ...

  9. 逐浪CMS最新V8.1.6 Beta版安装部署操作

    首先要获得内部最新版本的CMS,官网有公开发布版本,但不属于内部最新的,内部最新的CMS系统是不断的有功能的迭代更新. 操作系统建议是win10.1.windows server2012\2016\2 ...

  10. ajax之---“伪”ajax

    views.py def ajax1(request): ret={'status':'true','message':'successful'} return HttpResponse(json.d ...