Superset:“module" object has no attribute 'SIGALRM'

1、问题:

在Superset安装好后,SQL查询数据会出现如下错误:“module" object has no attribute 'SIGALRM'

Superset:“module

2、问题原因:

由于 Windows 环境下依赖包不兼容导致的 —— Python 的 signal 包只作用于 Linux 和 Mac ,在 Windows 下不启作用。

3、解决办法:

(1)首先,从顶部导航菜单的 Sources-->Databases 进入数据库的列表页,选中数据库进行编辑,将 Expose in SQL Lab 和 Allow Run Sync 都勾选上,其余的不要勾选。

a. 英文版:

Superset:“module

b. 汉语版:

Superset:“module

(2)在 superset/utils.py 下找到相关代码,把 signal 所在行都注释,然后再加上一个 pass (这块代码的功能是在超时后将查询进程杀掉,注释后没大影响)。

    def __enter__(self):
        try:
            pass
            #signal.signal(signal.SIGALRM, self.handle_timeout)
            #signal.alarm(self.seconds)
        except ValueError as e:
            logging.warning("timeout can't be used in the current context")
            logging.exception(e)

    def __exit__(self, type, value, traceback):
        try:
            pass
            #signal.alarm(0)
        except ValueError as e:
            logging.warning("timeout can't be used in the current context")
            logging.exception(e)

(3)重新操作查询,发现完美解决。

Superset:“module

你可能感兴趣的:(Superset)