我使用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)尚未解决。
从用户使用的不同数据库后端和配置来看,该问题似乎与数据库访问权限无关。
答案 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尝试将CSV文件上传到错误消息中显示的路径。该路径归root用户所有,而Superset没有对此路径的权限。
要解决此问题,您需要更改Superset上传CSV文件的路径。如上所示,可以通过设置几个配置轻松完成此操作。
这也应该解决上传照片以在Superset用户个人资料中使用的问题。
答案 1 :(得分:0)
如上所述的错误主要与文件夹权限有关。 您可以通过以root权限执行来使其运行。
例如,在我的情况下,运行 superset runserver -d -p8080
后出现此错误。
改为使用命令 sudo superset runserver -d -p8080
,您将可以上传CSV文件。
注意:可以根据需要更改指定的其他标志和端口号。
也请注意::仅当您以超级用户权限安装了超集时,才会出现此权限错误,即您可能使用了 {{1}来代替 pip install superset
}
希望有一天会有帮助。