代码之家  ›  专栏  ›  技术社区  ›  Sam

apache superset[errno 13]权限被拒绝:'/usr/local/lib/python3.5/site packages/superset/app'

  •  1
  • Sam  · 技术社区  · 6 年前

    我用 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 )尚未解决。

    这个问题似乎与数据库访问权限无关,因为用户使用的数据库后端和配置不同。

    1 回复  |  直到 6 年前
        1
  •  1
  •   benvdh Roland Bouman    5 年前

    解决方案

    将以下行添加到 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/'
    

    您还可以将路径更改为保存上载的文件和图像的位置 在你的docker图像中 .

    问题原因:

    Superset正在尝试将CSV文件上载到错误消息中显示的路径该路径归根用户所有,超级集无权访问它。

    要解决此问题,需要更改superset上载csv文件的路径。如上图所示,通过设置两个配置可以很容易地做到这一点。

    这也可以解决上传照片以用于超集用户配置文件时的问题。

        2
  •  0
  •   Tadiwanashe    5 年前

    上述错误主要与文件夹权限有关。 您可以通过使用根权限执行来运行此操作。

    例如,在我的例子中,我在运行 superset runserver -d -p8080 是的。

    使用命令 sudo superset runserver -d -p8080 相反,你将能够上传你的csv文件。

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

    另请注意: 仅当您使用根权限(即 pip install superset 你可能用过 sudo pip install superset

    希望有一天它能帮助别人。