jupyter notebook starting directory - python

I'm trying to set a custom starting directory in Jupyter Notebook. I have edited jupyter_notebook_config.py.
Removed # from line "c.NotebookApp.notebook_dir =", added parameter:
c.NotebookApp.notebook_dir = u'c:\\my\\chosen\\directory'.
But still doesn't work, console coming up with error, and jupyter starting in the default home directory.
I'm using Windows server 2008. According to the manuals, it should work.
Does anyone have a suggestion about my problem?

The followings steps work perfectly for me on Windows:
First find which directory Jupyter is looking in for your config file:
jupyter --config-dir
If there is no jupyter_notebook_config.py file in that directory, generate one by typing:
jupyter notebook --generate-config
Then edit the jupyter_notebook_config.py file and add something like:
## The directory to use for notebooks and kernels.
c.NotebookApp.notebook_dir = 'c:\\users\\rsignell\\documents\\github'
Then start your jupyter notebook from any directory:
jupyter notebook
and it will start in the directory you specified.
For more info see: http://jupyter-notebook.readthedocs.io/en/latest/config.html

Microsoft Windows
Open dos command line by typing cmd on windows explorer address bar. This will open command prompt with current path set to current folder. Type jupyter notebook --notebook-dir=%CD% on commandline to start jupyter notebook (ipython notebook) with current directory as notebook's starting directory

I also had the problem, and editing jupyter configuration file didn't work either.
My workaround is to make a batch file that goes to a specified directory, then start jupyter notebook from that directory.
You can use notepad to write the batch file, just save it as an all files and specify the extension as .bat
An easy way is also available from DOS prompt using copy con. First, access command prompt (usually by typing "cmd" and enter). Then:
copy con startjupyter.bat
after that you can specify your directory and start notebook from there, for example if your directory is D:\python_codes :
d:
cd python_codes
jupyter notebook
After that, save the file using CTRL+Z and Enter.
You can run the batch file by calling the name (startjupyter), or click it. For the latter, maybe put it in your desktop for easy access.

I had also problems with the solutions given here. My solution was quick and dirty then, but it works with Windows. I made a batch-file:
cd C:\[starting Directory]
jupyter notebook
stop
You can start Jupyter with a defined directory when you use different batch-files. For example:
cd C:\datascience
or
cd C:\browsergame

Related

Change Jupyter notebook working directory

When I open the notebook e.g. at home home / user / Desktop / multifit-master / notebooks / CLS-DE.ipynb.
And then type in the notebook (CLS-DE.ipynb) %cd I get:
home/user
Shouldn't this be the directory where I opened my notebook? It means :
home / user / Desktop / multifit-master / notebooks / CLS-DE.ipynb
How to make a notebook in the directory where I open it?
I want to see after typing %cd in CLS-DE.ipynb notebook this directory:
home / user / Desktop / multifit-master / notebooks / CLS-DE.ipynb
To answer your first question, %cd executes shell command cd, which means "go to home directory". Your home directory is /home/user.
If you want to change where jupyter saves notebooks:
Define it when starting jupyter jupyter notebook --notebook-dir=home/user/Desktop/multifit-master/notebooks for Jupyter or jupyter-lab --notebook-dir=home/user/Desktop/multifit-master/notebooks for JupyterLab.
Switch to the required directory before starting jupyter.
To get what you want, i.e. "I want to see after typing %cd in CLS-DE.ipynb notebook this directory", you'd have to change HOME environment variable. I'd never go this way, as number of tools, scripts, libraries etc. might refer to you HOME. Changing it is likely to bring unforeseen consequences, with little benefit.
option 1 :
open terminal, change path where ever you want to and then open jupyter notebook
via terminal.
jupyter notebook
Option 2 :
u can use os.chdir
In the terminal use cd to go in to the respective directory. Once there, type "jupyter notebook" in the terminal. This should open the notebook in that directory.
And to make sure that the notebook is open in the directory you wanted, type "%pwd". It means "print working directory".

Edit the Jupyter terminal's starting directory

when I launch a Jupyter notebook (which I installed through Anaconda), the explorer opens in C:\Users\Joe
However, when I open a terminal (New -> Terminal) it opens in C:\Users\Joe\Documents
Is it possible to change the starting directory of the terminal, so it matches the notebook explorer page?
I have already tried the following:
1) edit the 'Start in' field in windows PowerShell properties to my desired location. This didn't change anything - it's as if when jupyter opens the terminal it overrides this - though it seems to use PowerShell.
2) running jupyter notebook –generate-config, and inserting my desired path to c.NotebookApp.notebook_dir = "".
Any advice would be appreciated, thank you!
Resolved this myself - found the answer here:
Find the default local Jupyter directory
In the Anconda3 folder there is a file cwp.py, which determines where the working directory should be changed to. I commented out lines 26-30:
if exception:
documents_folder, exception = get_folder_path(FOLDERID.PublicDocuments)
if not exception:
os.chdir(documents_folder)
and the path in the terminal is no longer being modified.

Folders visible when opening jupyter notebooks

When I open Jupyter Notebooks, I see all of the folders under "Owner" on my computer (including My Documents, My Pictures, etc). I wanted to see if there was any way that I could install Anaconda or use Jupyter notebooks so that these folders are not seen. Having all of those folders clutters the screen, I just want folders for my datasets and notebooks.
In addition, when I open it in localhost and I see these folders (My Documents, My Pictures).
Does this mean that these files are copied onto python's servers? Or would it only be accessible from my computer?
If someone is a complete newbie to using Jupyter Notebook, like me, then here's the elaboration to Yasin Yousif and ALollz comments:
Open Jupyter Notebook which results in the Juyter Dashboard.
Open new terminal from here.
This is where the solutions suggested by Yasin Yousif and ALollz need to be implemented:
You can change the default directory of Jupyter Notebook.
Go to .jupyter folder. It's usually in <USER NAME>/.jupyter
Open the config file jupyter_notebook_config.py in a text editor
If the file was missing, create it first by running the command:
jupyter notebook --generate-config
Change it at:
c.NotebookApp.notebook_dir = 'D:/'

Jupyter on Mac: run files from non-default directory

I run Jupyter Notebook on a mac and I am trying to edit a notebook file from a git repo I am contributing to. However I am having trouble accessing the file from the Notebook interface.
Is there a way to access notebooks which are not in the default path on mac (navigation to arbitrary file locations works fine on windows) without changing the default directory to my git repo and without copying the file to my default directory and back every time I edit it?
It looks like direct navigation outside the path is impossible (Based on this post) but it seems that it should be possible to start the notebook from the given directory using the command line.
Things I've tried:
Directly typing the relative and absolute path into the web interface with respect to the tree (i.e. http://localhost:8889/tree/../../[path-to-file]
Renaming the file with the path as a prefix
Starting jupyter from the directory containing the notebook
... with no success as of yet.
Any help on this would be greatly appreciated.
it seems that it should be possible to start the notebook from the given directory using the command line
You can...
jupyter notebook /some/non-default/path
However, you can only reach sub-directories of that path with Jupyter
Starting jupyter from the directory containing the notebook
That should also work
If you python code needs to read files that are in parent directories, relative paths still resolve fine within the notebook kernel.

Where does the %load filename.py command look in Jupyter notebooks?

I am trying to load a .py file into a single cell in a jupyter notebook. I tried using the command %load training.py and I received the error:
"ValueError: 'training.py' was not found in history, as a file, url, nor in the user namespace."
I have a folder that contains all of the .py files that I want to be able to load into jupyter in C:\Users\Jeffrey\CharmTagger. I then moved one of the .py files out of the folder and into C:\Users\Jeffrey and the %load command found that file. Is there anyway I can get jupyter to look in folders? I don't want to clutter my User folder. Is there anywhere else I can put these files so that they can still be found by %load?
You can always use the full path:
%load C:\Users\Jeffrey\CharmTagger\training.py
When you type:
%load training.py
IPython looks into the current working directory. You can find it with:
%pwd
The magic expression %load loads files relative to notebook current working directory.
The working directory for every new Jupyter notebook is set once started the notebook server.
It's the same directory from where you started the server (if didn't specified a different one with the proper option jupyter notebook --notebook-dir=some_directory).
You can get or change the working directory of your notebook with some system magics (special notebook functions) respectively:
%pwd (print working directory)
%cd some_folder/some_other_folder (change directory)
Let say you just started the notebook, and your current directory is your home directory and thus the output of %pwd will be something like
/home/some_user.
If you want to load files from a specific folder, i.e. /home/some_user/my_code (or if you are using Windows C:\Users\Some_user\my_code) you can type
(each in a separate notebook cell):
%cd my_code
and then:
%load my_script1.py
%load my_script2.py

Categories