|
@@ -66,32 +66,10 @@ Docker
|
|
|
If you have `Docker installed <https://docs.docker.com/install/>`__, you can install and use JupyterLab by selecting one
|
|
|
of the many `ready-to-run Docker images <https://jupyter-docker-stacks.readthedocs.io/en/latest/using/selecting.html>`__
|
|
|
maintained by the Jupyter Team. Follow the instructions in the `Quick Start Guide <https://jupyter-docker-stacks.readthedocs.io/en/latest/>`__
|
|
|
-to deploy the chosen Docker image. NOTE: Ensure your docker command includes the `-e JUPYTER_ENABLE_LAB=yes` flag to ensure
|
|
|
-JupyterLab is enabled in your container.
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
-Installing with Previous Versions of Notebook
|
|
|
----------------------------------------------
|
|
|
-
|
|
|
-If you are using a version of Jupyter Notebook earlier than 5.3, then you must also run the following command to enable the JupyterLab
|
|
|
-server extension:
|
|
|
-
|
|
|
-.. code:: bash
|
|
|
-
|
|
|
- jupyter serverextension enable --py jupyterlab --sys-prefix
|
|
|
-
|
|
|
-
|
|
|
-Prerequisites
|
|
|
--------------
|
|
|
-
|
|
|
-JupyterLab requires the Jupyter Notebook version 4.3 or later. To check
|
|
|
-the version of the ``notebook`` package that you have installed:
|
|
|
-
|
|
|
-.. code:: bash
|
|
|
-
|
|
|
- jupyter notebook --version
|
|
|
+to deploy the chosen Docker image.
|
|
|
|
|
|
+Ensure your docker command includes the ``-e JUPYTER_ENABLE_LAB=yes`` flag to ensure
|
|
|
+JupyterLab is enabled in your container.
|
|
|
|
|
|
Usage with JupyterHub
|
|
|
---------------------
|
|
@@ -119,7 +97,7 @@ A tool like `postcss <https://postcss.org/>`__ can be used to convert the CSS fi
|
|
|
Usage with private NPM registry
|
|
|
-------------------------------
|
|
|
|
|
|
-To install extensions, you will need access to a NPM packages registry. Some companies do not allow
|
|
|
+To install some extensions, you will need access to an NPM packages registry. Some companies do not allow
|
|
|
reaching directly public registry and have a private registry. To use it, you need to configure ``npm``
|
|
|
**and** ``yarn`` to point to that registry (ask your corporate IT department for the correct URL):
|
|
|
|
|
@@ -128,42 +106,33 @@ reaching directly public registry and have a private registry. To use it, you ne
|
|
|
npm config set registry https://registry.company.com/
|
|
|
yarn config set registry https://registry.company.com/
|
|
|
|
|
|
-JupyterLab will pick up that registry automatically.
|
|
|
-
|
|
|
-.. note::
|
|
|
+JupyterLab will pick up that registry automatically. You can check which registry URL is used by JupyterLab by running::
|
|
|
|
|
|
- You can check which registry URL is used by JupyterLab by running::
|
|
|
-
|
|
|
- python -c "from jupyterlab.commands import AppOptions; print(AppOptions().registry)"
|
|
|
+ python -c "from jupyterlab.commands import AppOptions; print(AppOptions().registry)"
|
|
|
|
|
|
Installation problems
|
|
|
---------------------
|
|
|
|
|
|
If your computer is behind corporate proxy or firewall,
|
|
|
-you may encounter HTTP and SSL errors due to custom security profiles managed by corporate IT departments.
|
|
|
-
|
|
|
-Example of typical error, when conda cannot connect to own repositories:
|
|
|
-
|
|
|
-+ `CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/current_repodata.json>`
|
|
|
+you may encounter HTTP and SSL errors due to the proxy or firewall blocking connections to widely-used servers. For example, you might see this error if conda cannot connect to its own repositories::
|
|
|
|
|
|
+ CondaHTTPError: HTTP 000 CONNECTION FAILED for url <https://repo.anaconda.com/pkgs/main/win-64/current_repodata.json>
|
|
|
|
|
|
-This may happen because your company can block connections to widely-used repositories in Python and JavaScript communities.
|
|
|
+Here are some widely-used sites that host packages in the Python and JavaScript open-source ecosystems. Your network adminstrator may be able to allow http and https connections to these domains:
|
|
|
|
|
|
-Here are some widely-used sites that host packages in the Python and JavaScript open-source ecosystem. Your network adminstrator may be able to allow http and https connections to these:
|
|
|
+- pypi.org
|
|
|
+- pythonhosted.org
|
|
|
+- continuum.io
|
|
|
+- anaconda.com
|
|
|
+- conda.io
|
|
|
+- github.com
|
|
|
+- githubusercontent.com
|
|
|
+- npmjs.com
|
|
|
+- yarnpkg.com
|
|
|
|
|
|
-- \*.pypi.org
|
|
|
-- \*.pythonhosted.org
|
|
|
-- \*.continuum.io
|
|
|
-- \*.anaconda.com
|
|
|
-- \*.conda.io
|
|
|
-- \*.github.com
|
|
|
-- \*.githubusercontent.com
|
|
|
-- \*.npmjs.com
|
|
|
-- \*.yarnpkg.com
|
|
|
-
|
|
|
-Alternatively you can specify proxy user (mostly domain user with password),
|
|
|
+Alternatively, you can specify a proxy user (usually a domain user with password),
|
|
|
that is allowed to communicate via network. This can be easily achieved
|
|
|
-by setting two common environment variables: `HTTP_PROXY` and `HTTPS_PROXY`.
|
|
|
+by setting two common environment variables: ``HTTP_PROXY`` and ``HTTPS_PROXY``.
|
|
|
These variables are automatically used by many open-source tools (like ``conda``) if set correctly.
|
|
|
|
|
|
.. code:: bash
|
|
@@ -176,7 +145,6 @@ These variables are automatically used by many open-source tools (like ``conda``
|
|
|
export HTTP_PROXY=http://USER:PWD@proxy.company.com:PORT
|
|
|
export HTTPS_PROXY=https://USER:PWD@proxy.company.com:PORT
|
|
|
|
|
|
-
|
|
|
In case you can communicate via HTTP, but installation with ``conda`` fails
|
|
|
on connectivity problems to HTTPS servers, you can disable using SSL for ``conda``.
|
|
|
|
|
@@ -190,7 +158,7 @@ on connectivity problems to HTTPS servers, you can disable using SSL for ``conda
|
|
|
|
|
|
You can do a similar thing for ``pip``.
|
|
|
The approach here is to mark repository servers as trusted hosts,
|
|
|
-which means, SSL communication will not be required for downloading Python libraries.
|
|
|
+which means SSL communication will not be required for downloading Python libraries.
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
@@ -201,12 +169,12 @@ which means, SSL communication will not be required for downloading Python libra
|
|
|
Using the tips from above, you can handle many network problems
|
|
|
related to installing Python libraries.
|
|
|
|
|
|
-Many Jupyter extensions require having a working ``npm`` and ``jlpm`` (alias for ``yarn``) commands,
|
|
|
-which is required for downloading useful Jupyter extensions or other JavaScript dependencies.
|
|
|
+Many Jupyter extensions require having working ``npm`` and ``jlpm`` (alias for ``yarn``) commands,
|
|
|
+which is required for downloading useful Jupyter extensions or other JavaScript dependencies. If ``npm`` cannot connect to its own repositories, you might see an error like::
|
|
|
|
|
|
-Example of typical error message, when ``npm`` cannot connect to own repositories:
|
|
|
+ ValueError: "@jupyterlab/toc" is not a valid npm package
|
|
|
|
|
|
-+ `ValueError: "@jupyterlab/toc" is not a valid npm package`
|
|
|
+You can set the proxy or registry used for npm with the following commands.
|
|
|
|
|
|
.. code:: bash
|
|
|
|
|
@@ -228,14 +196,3 @@ on connectivity problems to HTTPS servers, you can disable using SSL for ``npm``
|
|
|
|
|
|
# Configure npm to not use SSL
|
|
|
npm set strict-ssl False
|
|
|
-
|
|
|
-Problems with Extensions and Settings
|
|
|
--------------------------------------
|
|
|
-
|
|
|
-Jupyterlab saves settings via `PUT` requests to the server with a JSON5-compatible payload, even though it claims the PUT request is valid JSON. `JSON5 <https://json5.org/>`__ is a superset of JSON that allows comments, etc. There may be deployment problems, manifest as 400 error return codes when saving settings, if these `PUT` requests are rejected by a routing layer that tries to validate the payload as JSON instead of JSON5.
|
|
|
-
|
|
|
-Common symptoms of this during debugging are:
|
|
|
-
|
|
|
-- The settings are selected but nothing changes, or when extension manager is enabled but the manager tab is not added.
|
|
|
-- JupyterLab's logs don't have the 400 return codes when `PUT` requests are issued.
|
|
|
-- If your JupyterLab logs are on Elastic Search, you'll see `Unexpected token / in JSON at position`. This comes from the JSON5 comments not being valid JSON.
|