skip to Main Content

I have started to experience an issue with installing extensions for Jupyterlab that I have not experienced in the past. I am not able to build after installing new extensions for Jupyterlab.

I am running Jupyterlab with GCP AI Platform Notebooks. I am using the standard Python 3 environment on Debian 10. I have tried to run on different types of machines.

I am receiving a status 500 error. Here is the log from when I run jupyter lab build:

[LabBuildApp] WARNING | Config option `kernel_spec_manager_class` not recognized by `LabBuildApp`.
[LabBuildApp] JupyterLab 1.2.16
[LabBuildApp] Building in /opt/conda/share/jupyter/lab
[LabBuildApp] Building jupyterlab assets (build:prod:minimize)
An error occured.
PermissionError: [Errno 1] Operation not permitted: '/opt/conda/share/jupyter/lab/staging/index.js'
See the log file for details:  /tmp/jupyterlab-debug-pnbu3naq.log

Here is the log file with details:

[LabBuildApp] Building in /opt/conda/share/jupyter/lab
[LabBuildApp] Yarn configuration loaded.
[LabBuildApp] Node v15.3.0

[LabBuildApp] Building jupyterlab assets (build:prod:minimize)
[LabBuildApp] Traceback (most recent call last):

[LabBuildApp]   File "/opt/conda/lib/python3.7/site-packages/jupyterlab/debuglog.py", line 47, in debug_logging
    yield

[LabBuildApp]   File "/opt/conda/lib/python3.7/site-packages/jupyterlab/labapp.py", line 98, in start
    command=command, app_options=app_options)

[LabBuildApp]   File "/opt/conda/lib/python3.7/site-packages/jupyterlab/commands.py", line 459, in build
    command=command, clean_staging=clean_staging)

[LabBuildApp]   File "/opt/conda/lib/python3.7/site-packages/jupyterlab/commands.py", line 650, in build
    clean=clean_staging

[LabBuildApp]   File "/opt/conda/lib/python3.7/site-packages/jupyterlab/commands.py", line 1103, in _populate_staging
    shutil.copy(pjoin(HERE, 'staging', fname), target)

[LabBuildApp]   File "/opt/conda/lib/python3.7/shutil.py", line 249, in copy
    copymode(src, dst, follow_symlinks=follow_symlinks)

[LabBuildApp]   File "/opt/conda/lib/python3.7/shutil.py", line 144, in copymode
    chmod_func(dst, stat.S_IMODE(st.st_mode))

[LabBuildApp] PermissionError: [Errno 1] Operation not permitted: '/opt/conda/share/jupyter/lab/staging/index.js'

[LabBuildApp] Exiting application: JupyterLab

Since I have been able to install the same extensions for Jupyterlab in the past on other VM instances I would expect it has something to do with the version of Jupyterlab that is installed. I would, however, expect that Google would install the latest version of Jupyterlab.

The error log does seem to indicate that it is a permission error, which I don’t understand as I am running the jupyter lab build at base. The only setting I have changed after creating the instance is to enable extensions.

3

Answers


  1. You need to compile jupyter-lab as root. It’s less intuitive because jupyter is not included in $PATH for the root user.

    Here’s what to do:

    sudo apt-get install nodejs  # needed to compile jupyter-lab
    sudo /opt/conda/bin/jupyter lab build
    
    Login or Signup to reply.
  2. AI Platform Notebooks are running an old version of JupyterLab. It is hard to install plugins when running an old version. You’ll need to move off AI Platform Notebooks or wait until AI Platform Notebooks upgrades to a new version.

    AI Platform Notebooks is running 1.x, and the current version is 3.x.

    Login or Signup to reply.
  3. This is how it proceeded for me.

    anu@federation:~$ conda install nodejs
    Collecting package metadata (current_repodata.json): failed
    
    NotWritableError: The current user does not have write permissions to a required path.
      path: /opt/conda/pkgs/cache/18414ddb.json
      uid: 1001
      gid: 1002
    
    If you feel that permissions on this path are set incorrectly, you can manually
    change them by executing
    
      $ sudo chown 1001:1002 /opt/conda/pkgs/cache/18414ddb.json
    
    In general, it's not advisable to use 'sudo conda'.
    
    
    anu@federation:~$ sudo chown 1001:1002 /opt/conda/pkgs/cache/*
    anu@federation:~$ conda install nodejs
    Collecting package metadata (current_repodata.json): done
    Solving environment: failed with initial frozen solve. Retrying with flexible solve.
    Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source.
    Collecting package metadata (repodata.json): done
    Solving environment: done
    
    ## Package Plan ##
    
      environment location: /opt/conda
    
      added / updated specs:
        - nodejs
    
    
    The following packages will be downloaded:
    
        package                    |            build
            ---------------------------|-----------------
            certifi-2021.10.8          |   py37h89c1867_2         145 KB  conda-forge
            conda-4.12.0               |   py37h89c1867_0         1.0 MB  conda-forge
            jinja2-2.11.3              |     pyhd3eb1b0_0         101 KB
            openssl-1.1.1o             |       h166bdaf_0         2.1 MB  conda-forge
            ------------------------------------------------------------
                                                   Total:         3.4 MB
        
        The following packages will be UPDATED:
        
          certifi                          2021.10.8-py37h89c1867_1 --> 2021.10.8-py37h89c1867_2
          conda                               4.11.0-py37h89c1867_2 --> 4.12.0-py37h89c1867_0
          openssl                                 1.1.1l-h7f98852_0 --> 1.1.1o-h166bdaf_0
        
        The following packages will be SUPERSEDED by a higher-priority channel:
        
          jinja2             conda-forge::jinja2-2.11.3-pyh44b312d~ --> pkgs/main::jinja2-2.11.3-pyhd3eb1b0_0
        
        
        Proceed ([y]/n)? y
        
        
        Downloading and Extracting Packages
        openssl-1.1.1o       | 2.1 MB    | ##################################### | 100% 
        jinja2-2.11.3        | 101 KB    | ##################################### | 100% 
        certifi-2021.10.8    | 145 KB    | ##################################### | 100% 
        conda-4.12.0         | 1.0 MB    | ##################################### | 100% 
        Preparing transaction: done
        Verifying transaction: done
        Executing transaction: done
        (base) anu@federation:~$ 
    

    FATAL ERROR: Ineffective mark-compacts near heap limit Allocation
    failed – JavaScript heap out of memory

    After I saw this error in the log I included additional options like this.

    (base) anu@federation:~$ jupyter lab build --dev-build=False --minimize=False
    [LabBuildApp] WARNING | Config option `kernel_spec_manager_class` not recognized by `LabBuildApp`.
    [LabBuildApp] JupyterLab 3.2.9
    [LabBuildApp] Building in /opt/conda/share/jupyter/lab
    [LabBuildApp] Building jupyterlab assets (production, not minimized)
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search