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

时间:2018-07-18 22:58:44

标签: superset apache-superset

我使用Apache Superset进行数据浏览。我遵循了installation instructions,并且在使用该应用程序时没有遇到任何问题。

但是,在安装community maintained docker image后,我尝试upload a CSV file进行可视化并出现以下错误:

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

我将sqlite用作数据库后端,并安装了数据库卷as suggested

其他用户在使用不同的设置和配置时也会遇到相同的问题。他们打开的问题(#4576#4287)尚未解决。

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

2 个答案:

答案 0 :(得分:1)

解决方案

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

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/'

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

问题原因:

Superset尝试将CS​​V文件上传到错误消息中显示的路径。该路径归root用户所有,而Superset没有对此路径的权限。

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

这也应该解决上传照片以在Superset用户个人资料中使用的问题。

答案 1 :(得分:0)

如上所述的错误主要与文件夹权限有关。 您可以通过以root权限执行来使其运行。

例如,在我的情况下,运行 superset runserver -d -p8080 后出现此错误。

改为使用命令 sudo superset runserver -d -p8080 ,您将可以上传CSV文件。

注意:可以根据需要更改指定的其他标志和端口号。

也请注意::仅当您以超级用户权限安装了超集时,才会出现此权限错误,即您可能使用了 {{1}来代替 pip install superset }

希望有一天会有帮助。