python连接kylin出现bug:sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:kylin

Python连接kylin的代码

import pandas as pd
import sqlalchemy  # Kylinpy 是一个提供 SQLAlchemy 方言实现的 Python 库

def get_kylin_data(sql, project_name='SDK_DataWarehouse'):
    kylin_engine = sqlalchemy.create_engine('kylin://用户名:密码@IP地址:7070/{}'.format(project_name),
                                            connect_args={'timeout': 30})
    df = pd.read_sql(sql, kylin_engine)
    return df

很多博客上都是这么写的,用sqlalchemy来构建连接。我这里取数是直接用的pandas,将引擎传进去即可。
测试都没问题,在上线的时候遇到一个问题。

问题描述

sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:kylin

很明显,是在构造kylin_engine对象的时候,sqlalchemy.create_engine()方法出错了。

解决方案

很明显,是提示缺少了某个库,无法导入,但不知道具体是什么,只提到了跟kylin有关。
经过线上和线下的库对比,原来是缺少了这个库: kylinpy

pip install kylinpy

安装好了就解决了。我也在requirements.txt文件里面添加上了这个依赖。
我猜原因可能是,sqlalchemy事先根本不知道我会使用kylin,所以没有自动把这个依赖库安装上。

后记

经过这次错误提醒,我明白了,sqlalchemy库在构造引擎的时候,会调用对应引擎的包,比如在构造mysql引擎的时候,应该要对应的安装上pymysql,同理,其他也可以类推。

另外,欢迎加入 Python数据分析 QQ群,号码:628966400
任何相关问题都可以在群里提出!!!

你可能感兴趣的:(python连接kylin出现bug:sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:kylin)