Changing browser for IPython Notebook from system default

18,906

Solution 1

Since the great switch to Jupyter, and with recent versions of OS X (e.g., Yosemite), Jupyter/iPython (e.g., 4.0.1), and Chrome (e.g., 47), things have changed a bit. Jupyter/iPython no longer puts the notebook config file in ~/.ipython; it's now in ~/.jupyter, and the default file is generated with

jupyter notebook --generate-config

If you have an existing ipython_notebook_config.py you can migrate it with jupyter migrate (H/T).

After generating or migrating your config file, add the following line to jupyter_notebook_config.py:

c.NotebookApp.browser = u'/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome %s'

Solution 2

Based on this answer, (running Python 2.7.3 and IPython-0.13.1 on Linux), all I had to set in my ipython_notebook_config.py was

c.NotebookApp.browser = u'/usr/bin/google-chrome %s'

I'm guessing, setting c.NotebookApp.browser to /Applications/Browsers/Chrome.app/Contents/MacOS/Google Chrome %s should work for you.

Solution 3

On OS X, you can put the following in ipython_notebook_config.py to open Chrome:

c.NotebookApp.browser = u'/usr/bin/open -a Google\\ Chrome %s'

The executable in '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome' fails for me with 'unable to obtain profile lock', so going through 'open' is the only simple alternative I see.

Solution 4

This might not be the right things to do , but

$ open -a Google\ Chrome http://localhost:8888
$ open -a Firefox http://localhost:8888

Works from me (only on mac) to open any url in one of the 2 browser.

Use the --no-browser option and make an bash function that does that. Or even have a bookmark in Chrome.

Solution 5

For people who want to make firefox their default for ipython notebooks (where it is not necessarily the system default), adding the following line to ipython_notebook_config.py should be sufficient:

c.NotebookApp.browser = 'Firefox'

For me, this was better than linking to the application file directly because it avoids the error: A copy of Firefox is already open. Only one copy of Firefox can be open at a time.

Share:
18,906

Related videos on Youtube

askewchan
Author by

askewchan

Physicist studying soft matter and fluid dynamics

Updated on September 16, 2022

Comments

  • askewchan
    askewchan over 1 year

    I would like to keep firefox as my system default browser on my Mac, but launch IPython Notebook in Chrome[1].

    This answer led me to my ipython_notebook_config.py file but I can't get an instance of Chrome running. After c = get_config() and import webbrowser, I've tried:

    1. webbrowser.register(u'chrome', None, webbrowser.Chrome())

    2. webbrowser.register(u'chrome', webbrowser.Chrome)

    3. webbrowser.register(u'chrome', None, webbrowser.GenericBrowser('/Applications/Browsers/Chrome.app'))

    4. webbrowser.register(u'chrome', None, webbrowser.GenericBrowser('/Applications/Browsers/Chrome.app/Contents/MacOS/Google\ Chrome'))

    All followed by c.NotebookApp.browser = u'chrome'

    I've fiddled with webbbrowser in the interpreter, and couldn't figure out how to create an instance of Chrome.


    [1]: PS Why is IPython Notebook so slow in firefox, especially for pylab with the inline backend? It's orders of magnitude faster (for rendering, scrolling, etc) in chrome.

    • Claus
      Claus over 10 years
      I am having very similar issues. Chrome won't open, whatever I try in the python_notebook_config.py (registering a new browser, different ways to specify the path to /Applications/Browsers/Chrome.app or its "Contents" with or without spaces escaped, etc. There is another stackoverflow discussion and there is an open issue I would love this to be resolved. Also, I also wonder, why it IPython seems much more stable and faster on Chrome.
    • Thomas K
      Thomas K over 10 years
      I use the notebook in Firefox and it runs at a perfectly usable speed. Is your Firefox up to date? Do you have any addons that might be interfering? Can you replicate this with a clean Firefox profile, or on another machine?
    • askewchan
      askewchan over 10 years
      @ThomasK Perhaps ... I use Firefox 'Aurora' so it's up to date, but if my addons or plugins are slowing it down then my preference is to use Chrome so that firefox can be the way I want it to be for web browsing.
    • Thomas K
      Thomas K over 10 years
      @askewchan: That's fine, I was more trying to figure out whether there's a problem that we (IPython) can fix.
  • askewchan
    askewchan almost 11 years
    Thanks for the suggestion but this doesn't seem to work. It must have access to launch chrome, because I get an error that chrome unexpectedly quit. I might be using the wrong binary, but I'm not sure where else to point. The ' %s' helps though, I think.
  • punchagan
    punchagan almost 11 years
    Does /Applications/Browsers/Chrome.app/Contents/MacOS/Google Chrome http://google.com work on the terminal? Can you try by adding a `` to escape the space?
  • askewchan
    askewchan almost 11 years
    Must be the issue. ~$ /Applications/Browsers/Chrome.app/Contents/MacOS/Google\ Chrome http://www.google.com [57636:2307:0618/191916:ERROR:process_singleton_mac.cc(106)] Unable to obtain profile lock.
  • Matt S.
    Matt S. over 10 years
    see: ipython.org/ipython-doc/stable/interactive/… to understand how you can configure your session when you launch it this way (where here, your 'remote notebook server' is of course just localhost)
  • Ian Hincks
    Ian Hincks almost 10 years
    If you don't have a ipython_notebook_config.py, you should run ipython profile create default and it will appear in ~/.ipython/profile_default or ~/.config/ipython/profile_default or similar.
  • 681234
    681234 over 8 years
    Handy if using ipython on VM, but you want to use host browser. For example: ipython notebook --ip=0.0.0.0 --port=3000 --no-browser mynotebook.ipynb (VM: nat, with port-forwarding on port 3000)
  • marvin
    marvin about 6 years
    Worked for me on OS X High Sierra 13.12
  • Romano Vacca
    Romano Vacca almost 6 years
    I added this but then with 'Chrome' instead of firefox, and it worked.