Jupyter not working in Isaac Sim container - unable to install from pip

I’m trying to run Jupyter inside the Isaac Sim docker container, but when jupyter_notebook.sh tries to install from pip, it gives a networking error:

SCRIPT_DIR = /isaac-sim
Performing setup...
Looking in indexes: https://urm.nvidia.com/artifactory/api/pypi/ct-omniverse-mirror-pypi/simple
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fb5c76b4d50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /artifactory/api/pypi/ct-omniverse-mirror-pypi/simple/jupyter/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fb5c78c03d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /artifactory/api/pypi/ct-omniverse-mirror-pypi/simple/jupyter/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fb5c78c0710>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /artifactory/api/pypi/ct-omniverse-mirror-pypi/simple/jupyter/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fb5c78c0a50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /artifactory/api/pypi/ct-omniverse-mirror-pypi/simple/jupyter/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fb5c78c0b50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /artifactory/api/pypi/ct-omniverse-mirror-pypi/simple/jupyter/
ERROR: Could not find a version that satisfies the requirement jupyter (from versions: none)
ERROR: No matching distribution found for jupyter
WARNING: You are using pip version 21.2.1+nv1; however, version 22.2.1 is available.
You should consider upgrading via the '/isaac-sim/kit/python/bin/python3 -m pip install --upgrade pip' command.

A similar error shows up when I try apt update or anything else that tries to connect to the internet. From this it looked like it could be a DNS issue, but I manually specified the DNS server with --dns=1.1.1.1 and the only change was it took longer for each retry. I got the same result on multiple servers in different environments, ruling out any weird network configuration on the host.

Hi @nkerns

This problem is similar to the one mentioned in this topic:

In your case, to fix it you can modify the /isaac-sim/jupyter_notebook.sh line 24 and add the default pip URL https://pypi.org/simple as follow

${python_exe} -m pip install jupyter -i https://pypi.org/simple

I tried that, and got pretty much the result:

SCRIPT_DIR = /isaac-sim
Performing setup...
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fea62a6d610>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/jupyter/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fea62a6da10>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/jupyter/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fea62a6dd50>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/jupyter/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fea62a820d0>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/jupyter/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x7fea62a82410>: Failed to establish a new connection: [Errno -3] Temporary failure in name resolution')': /simple/jupyter/
ERROR: Could not find a version that satisfies the requirement jupyter (from versions: none)
ERROR: No matching distribution found for jupyter
WARNING: You are using pip version 21.2.1+nv1; however, version 22.2.1 is available.
You should consider upgrading via the '/isaac-sim/kit/python/bin/python3 -m pip install --upgrade pip' command.

I also tried resetting the apt sources to the Ubuntu defaults, and still got DNS errors when running apt update, so it seems like the error isn’t specific to just Nvidia’s repos.

Turns out that solution does work when I remove the --dns option, which seemed to be conflicted with the host network for some reason.

Ok, now that I’ve got Jupyter running and Isaac Sim running within it, I’m unable to connect to it using the streaming client. I’m running this inside a notebook:

from omni.isaac.kit import SimulationApp

kit = SimulationApp({"headless": True})

from omni.isaac.core.utils.extensions import enable_extension

enable_extension("omni.kit.livestream.native")

while kit._app.is_running() and not kit.is_exiting():
    kit.update()

kit.close()

When I connect from the streaming client, it just shows a entirely gray window. It’s clearly connecting to something, otherwise it would time out, but none of the GUI is visible.

Try running ./python.sh standalone_examples/api/omni.isaac.kit/livestream.py from the container. You should get a window when streaming from the OV Streaming Client.

I’ve been able to connect to it with that example and with code I’ve written myself, it’s just Jupyter specifically where it doesn’t work. When I run the code from my previous post as a python file, the stream loads and I can see the GUI and an empty environment. The same code in Jupyter does not work.

Sorry, this was a bug. This will be fixed in Isaac Sim 2022.1.1 container. Try replacing this file.
jupyter_notebook.sh (1.7 KB)
or try running the vulkan_check.sh script in the container before running the Jupyter Notebook.

That had no effect. It still shows the gray screen.

Please share the output when running ./vulkan_check.sh or Isaac Sim log files with any errors.

Here’s the output of the console inside the notebook, and the log from Isaac Sim itself. There’s no obvious errors from what I can see, everything looks the same as when running that code outside of Jupyter (which does work).

jupyter_output.txt (37.5 KB)
kit_20220810_142020.log (563.5 KB)

The output from vulkan_check.sh also does not appear to contain any errors:

        libGLX_nvidia.so.0 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libGLX_nvidia.so.0
        libGLX_nvidia.so.0 (libc6) => /usr/lib/i386-linux-gnu/libGLX_nvidia.so.0
Writing disposable ICD file (/tmp/tmp_icd_JQlidB.json)...
GPU0
        apiVersion     = 1.3.205
        driverVersion  = 515.65.01
        vendorID       = 0x10de
        deviceID       = 0x2230
        deviceName     = NVIDIA RTX A6000


Writing ICD file to (/etc/vulkan/icd.d/nvidia_icd.json)

From the logs, I see that the jupyter logs is missing this line:

[carb.livestream.plugin] Streaming server started.

The Livestream server did not start.

Do you have another instance of Isaac Sim running(even on host)? Try a reboot and only start the jupyter notebook after the vulkan check…

Rebooting didn’t help, and there’s no other instances of Isaac Sim.

I have figured something out, though. When I’m at the gray screen, pressing F11 makes the entire screen black (as expected with an empty environment). The synthetic data sensors button shows up then, but clicking it does nothing. I added a cube in with python, and it shows up:

The move, rotate, and scale handles are also visible and functional, as you can tell. The camera movement controls work too.