Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Change IPython/Jupyter notebook working directory

People also ask

How do I change the default file path in Jupyter Notebook?

In the start menu, right click Jupyter Notebook -> Properties . In the Target field, change %USERPROFILE% to your new "D:\path" .


jupyter notebook --help-all could be of help:

--notebook-dir=<Unicode> (NotebookManager.notebook_dir)
    Default: u'/Users/me/ipynbs'
    The directory to use for notebooks.

For example:

jupyter notebook --notebook-dir=/Users/yourname/folder1/folder2/

You can of course set it in your profiles if needed, you might need to escape backslash in Windows.

Note that this will override whatever path you might have set in a jupyter_notebook_config.py file. (Where you can set a variable c.NotebookApp.notebook_dir that will be your default startup location.)


%pwd  #look at the current work dir
%cd   #change to the dir you want 

As MrFancypants mentioned in the comments, if you are using Jupyter (which you should, since it currently supersedes the older IPython Notebook project), things are a little different. For one, there are no profiles any more.

After installing Jupyter, first check your ~/.jupyter folder to see its content. If no config files were migrated from the default IPython profile (as they weren't in my case), create a new one for Jupyter Notebook:

jupyter notebook --generate-config

This generates ~/.jupyter/jupyter_notebook_config.py file with some helpfully commented possible options. To set the default directory add:

c.NotebookApp.notebook_dir = u'/absolute/path/to/notebook/directory'

As I switch between Linux and OS X, I wanted to use a path relative to my home folder (as they differ – /Users/username and /home/username), so I set something like:

import os
c.NotebookApp.notebook_dir = os.path.expanduser('~/Dropbox/dev/notebook')

Now, whenever I run jupyter notebook, it opens my desired notebook folder. I also version the whole ~/.jupyter folder in my dotfiles repository that I deploy to every new work machine.


As an aside, you can still use the --notebook-dir command line option, so maybe a simple alias would suit your needs better.

jupyter notebook --notebook-dir=/absolute/path/to/notebook/directory

A neat trick for those using IPython in windows is that you can make an ipython icon in each of your project directories designed to open with the notebook pointing at that chosen project. This helps keep things separate.

For example if you have a new project in C:\fake\example\directory

Copy an ipython notebook icon to the directory or create a new link to the windows "cmd" shell. Then right click on the icon and "Edit Properties"

Set the shortcut properties to:

Target:
C:\Windows\System32\cmd.exe /k "cd C:\fake\example\directory & C: & ipython notebook --pylab inline"

Start in:
C:\fake\example\directory\

(Note the added slash at the end of "start in")

This runs windows command line, changes to your working directory, and runs the ipython notebook pointed at that directory.

Drop one of these in each project folder and you'll have ipython notebook groups kept nice and separate while still just a doubleclick away.

UPDATE: IPython has removed support for the command line inlining of pylab so the fix for that with this trick is to just eliminate "--pylab inline" if you have a newer IPython version (or just don't want pylab obviously).

UPDATE FOR JUPYTER NOTEBOOK ~ version 4.1.1

On my test machines and as reported in comments below, the newest jupyter build appears to check the start directory and launch with that as the working directory. This means that the working directory override is not needed.

Thus your shortcut can be as simple as:

Target (if jupyter notebook in path):
    jupyter notebook

Target (if jupyter notebook NOT in path):
    C:\Users\<Your Username Here>\Anaconda\Scripts\jupyter.exe notebook

If jupyter notebook is not in your PATH you just need to add the full directory reference in front of the command. If that doesn't work please try working from the earlier version. Very conveniently, now "Start in:" can be empty in my tests with 4.1.1 and later. Perhaps they read this entry on SO and liked it, so long upvotes, nobody needs this anymore :)


For Windows 10

  1. Look for the jupyter_notebook_config.py in C:\Users\your_user_name\.jupyter or look it up with cortana.

  2. If you don't have it, then go to the cmd line and type:

    jupyter notebook --generate-config

  3. Open the jupyter_notebook_config.py and do a ctrl-f search for:

    c.NotebookApp.notebook_dir

  4. Uncomment it by removing the #.

  5. Change it to:

    c.NotebookApp.notebook_dir = 'C:/your/new/path'

    Note: You can put a u in front of the first ', change \\\\ to /, or change the ' to ". I don't think it matters.

  6. Go to your Jupyter Notebook link and right click it. Select properties. Go to the Shortcut menu and click Target. Look for %USERPROFILE%. Delete it. Save. Restart Jupyter.