redash开发环境搭建Windows pycharm超详细(2020.4.6)

redash开发环境搭建Windows pycharm超详细2020.4.6

  • 目录
    • 搭建环境
    • 前端
    • 服务端
        • 安装redis
        • 安装postgresql
        • Pycharm里的配置
        • 启动
    • 结语
    • 参考

目录

Redash有多厉害就不用说了,我一开始用docker搭建了一遍,操作很简单,想着以后肯定要在开发,就打算用python搭建一下,没想到遇到无数坑,尤其是在win里,对我这个新手来说太难了,好在有前人铺路,总算是搭好了…
我用的都是最新的版本

搭建环境

  • Windows
  • Node.js
  • pycharm
  • python3.8.2
  • 最新的redash-master,直接git或者下载压缩包
  • PostgreSQL
  • Redis

官网说的安装依赖项
redash开发环境搭建Windows pycharm超详细(2020.4.6)_第1张图片

前端

  1. 安装nodejs,最新的即可
  2. 进入Redash文件夹根目录,找到package.json文件
    scripts里替换
"scripts":
{
"clean": "rd /s /q \"client/dist\"",
"build": "npm run clean && cross-env NODE_ENV=production webpack --progress --hide-modules --config webpack.config.js",
},

windows下不支持linux删除文件夹的rm -rf指令。改用 rd /s /q 指令

windows环境下如果client目录下没有dist会报错,在client下建一个dist文件夹

  1. 为了速度快点,我们添加淘宝的镜像
    npm install -g cnpm --registry=https://registry.npm.taobao.org
    然后运行(需要install后没有提示error)
    cnpm install
    cnpm install cross-env
    cnpm run build
    前端搭建完成,最后我们可用cnpm run watch来监视运行情况
    -------------------------------------------------------

  2. 提供一个包卸载的命令。安装rimraf包
    npm install rimraf -g
    进入所需删除的node_modules文件夹的位置,卸载node_modules:
    rimraf node_modules

服务端

安装redis

这个很简单,直接操作就行了,然后把服务开起来,后面连接要用
redash开发环境搭建Windows pycharm超详细(2020.4.6)_第2张图片

安装postgresql

参考https://blog.csdn.net/TheDreamMaster/article/details/90318602
我们就用默认生成一个名为postgres的数据库和一个名为postgres的数据库用户,记住用的密码,要在下面REDASH_DATABASE_URL里写入
redash开发环境搭建Windows pycharm超详细(2020.4.6)_第3张图片
也是把数据库运行起来

Pycharm里的配置

  1. 用pycharm打开redash-master,安装虚拟环境redash开发环境搭建Windows pycharm超详细(2020.4.6)_第4张图片

  2. 安装python需要的包
    pip install -r requirements.txt -r requirements_dev.txt
    这里可能会遇到错误,pycrypto安装不上,直接改用pip install pycryptodome,或者我们可以直接在根目录的requirements.txt里替换掉原来的
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第5张图片
    这样就直接安装上了,要保证requirements.txt、 requirements_dev.txt里的所有包都安装上。
    如果要用其他的数据源,需要从requirements_all_ds.txt安装。
    我这里有一行错误ERROR: boto3 1.12.36 has requirement botocore<1.16.0,>=1.15.36, but you'll have botocore 1.13.50 which is incompatible,但是不影响。

  3. 在.eslintrc文件 rules 里面配置 "linebreak-style": [0 ,"error", "windows"],redash开发环境搭建Windows pycharm超详细(2020.4.6)_第6张图片

  4. ./redash/setting/init.py文件中
    配置redis

 _REDIS_URL = os.environ.get(
    "REDASH_REDIS_URL", os.environ.get("REDIS_URL", "redis://localhost:6379/0")
)

配置postgresql

SQLALCHEMY_DATABASE_URI = os.environ.get(
    "REDASH_DATABASE_URL", os.environ.get("DATABASE_URL", "postgresql://postgres:你的数据库用户密码@127.0.0.1:5432/postgres")
)

redash开发环境搭建Windows pycharm超详细(2020.4.6)_第7张图片
293行的刷新次数改成500/hour,THROTTLE_LOGIN_PATTERN = os.environ.get("REDASH_THROTTLE_LOGIN_PATTERN", "500/hour")

  1. 然后检查变量配置 python ./manage.py check_settings
    可能会遇到错误redash开发环境搭建Windows pycharm超详细(2020.4.6)_第8张图片
    我的psycopg2有问题,直接pip install psycopg2-binary
    还有这个错误ImportError: cannot import name ‘clock’ from ‘time’ (unknown location), 重装pip install passlib
    然后又遇到错误了,****d,这么多错…到底是谁的错啊
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第9张图片
    查了一下,pwd仅在Unix系统上存在,而在Windows系统上不存在。那就换个win里的包pip uninstall supervisorpip install supervirsor-win。这里终于没报错了,服务端一定要配置好。(如果还遇到了其他的坑,看下最后的参考)**redash开发环境搭建Windows pycharm超详细(2020.4.6)_第10张图片所以我们可以一开始就在requirements.txt文件里改pycryptodome和supervirsor-win(后面的版本号自己搜一下改掉)

启动

前端搭建好以后我们执行下面的命令:

  1. 创建数据库表python ./manage.py database create_tables
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第11张图片

  2. 启动web服务python ./manage.py runserver --debugger --reload -h 0.0.0.0 -p 5000
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第12张图片

  3. 赶紧上http://localhost:5000/看一眼吧
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第13张图片
    创一个用户
    redash开发环境搭建Windows pycharm超详细(2020.4.6)_第14张图片
    就进来了,欢迎使用~~

                                                                                         --Grisha 写于2020.4.6
    

结语

至于什么Flask服务,其实不用添加,我们debugger了嘛。我一开始就是flask能启动,但网页打不开,一直报错,后来先check_settings,创建数据库表,这里都成功了最后才能运行。

参考

参考了两位大佬的经验

  1. Windows环境部署开发Redash 最新版
  2. Linux环境下的PostgreSQL离线安装

谢谢大家,有问题一起讨论

你可能感兴趣的:(redash)