Apache Superset [Errno 13] 权限被拒绝:'/usr/local/lib/python3.5/site-packages/superset/app'

Wes*_*sam 3 superset apache-superset

我使用Apache Superset进行数据探索。我按照安装说明操作,使用该应用程序没有任何问题。

但是,在我安装了社区维护的 docker 映像后,我尝试上传一个 CSV 文件进行可视化,但出现以下错误:

([Errno 13] Permission denied: '/usr/local/lib/python3.5/site-packages/superset/app')
Run Code Online (Sandbox Code Playgroud)

我使用sqlite作为数据库后端,并按照建议安装了数据库卷。

其他用户在不同的设置和配置中遇到了同样的问题。他们打开的问题(#4576#4287)尚未解决。

从用户使用的不同数据库后端和配置可以看出,该问题似乎与数据库访问权限无关。

Wes*_*sam 6

解决方案

superset_config.py将以下行添加到您的文件中,重建并运行您的 docker 镜像:

import os

BASE_DIR = os.path.abspath(os.path.dirname(__file__))

# The file upload folder, when using models with files
UPLOAD_FOLDER = BASE_DIR + '/app/static/uploads/'

# The image upload folder, when using models with images
IMG_UPLOAD_FOLDER = BASE_DIR + '/app/static/uploads/'
Run Code Online (Sandbox Code Playgroud)

您还可以将路径更改为要将上传的文件和图像保存在 docker image 中的任何位置

问题原因:

Superset 正在尝试将 CSV 文件上传到错误消息中显示的路径。路径归root用户所有,Superset没有权限。

要解决此问题,您需要更改 Superset 上传 CSV 文件的路径。这可以通过设置如上所示的几个配置轻松完成。

这也应该可以解决上传照片以在 Superset 用户配置文件中使用的问题。