Force Jupyter Notebook *not* to open a web browser

Question:

I’m running Jupyter notebooks (Python 3) on a remote cluster that I’m connected/tunneled to over SSH.

Jupyter’s default behavior is to try to open the dashboard in a web browser when it launches — aparently (I only just updated), at some point they switched to the Python 3 webbrowser library for this.

According to webbrowser‘s documentation:

text-mode browsers will be used if graphical browsers are not available or an X11 display isn’t available.

This is exactly what happens. I run jupyter notebook, webbrowser launches elinks, and my one-time authentication token gets eaten, preventing me from connecting to the notebook.

Jupyter isn’t configured to use a browser — c.NotebookApp.browser is commented out in my config — and running BROWSER="" jupyter notebook doesn’t help either.

How can I force Jupyter not to open any browser?

Asked By: Linuxios

||

Answers:

jupyter-notebook --help includes the following:

--no-browser
    Don't open the notebook in a browser after startup.
Answered By: user2357112
jupyter notebook --generate-config

Then edit ~/.jupyter/jupyter_notebook_config.py and Add

NotebookApp.open_browser = False
Answered By: Q. Qiao

You can achieve this by specifying –no-browser:

$ jupyter notebook --no-browser

I also recommend that you specify the port you want to use:

jupyter notebook --no-browser --port= <port_number>

ie:

$ jupyter notebook --no-browser --port=8888

You have to keep in mind that when you do this, jupyter will provide you with a token on the console, token that the server will ask you when connect remotely through the browser.

If you want to simplify this procedure, you can set a password that is easier for you to remember. To do this, you can run in a console:

$ jupyter notebook --generate-config

and later:

$ jupyter notebook password

This last command will ask you for the password that you wish to use to enter remotely.

Regards!