LoginSignup
104

More than 5 years have passed since last update.

Jupyter Notebookの初期ディレクトリを変更する

Posted at

windows10でJupyter Notebookの初期ディレクトリを変更する方法のメモです。

1. jupyter notebookの設定ファイルを作る

Aanaconda Promptで以下を入力

jupyter notebook --generate-config

すると,default configがC:\Users\[ユーザー名]\.jupyter\jupyter_notebook_config.pyに生成されるので,それを開く

(Macの場合はおそらく~/.jupyter/jupyter_notebook_config.pyになる)

2. 設定ファイルを編集する

202行目にc.NotebookApp.notebook_dir = ''という行があるので,コメントアウトの#を消して,設定したいフォルダのパスを入れる

## The directory to use for notebooks and kernels.
#c.NotebookApp.notebook_dir = ''

Usersフォルダ等を指定するときの注意点

コンフィグファイルがPythonであるため,Windowsのパスの書き方をそのまま使うとエラーにハマることがある。

c.NotebookApp.notebook_dir = 'C:\Users'

のように,\Uあるいは\uから始まるようなパスを指定してしまうと,正しくパスが指定されないため,エラーが吐かれるし指定したディレクトリでjupyter notebookが起動しない。

image.png

この原因は,Pythonにおいて\Uxxxxxxxx\uxxxxはエスケープシーケンス(特殊な意味を持つ文字列。改行を\nで表すアレの仲間)であるため。
(参考:2. 字句解析 — Python 3.6.5 ドキュメント

Usersフォルダに限らず,Pythonのエスケープシーケンスに引っかかるフォルダ名は全部エラーになる。例えば'C:\abc'とかも\aというエスケープシーケンスがあるのでダメ。

対処法

1. \を表すエスケープシーケンスである\\を使う

c.NotebookApp.notebook_dir = 'C:\\Users'

あるいは,

2. \の代わりに/を使う

c.NotebookApp.notebook_dir = 'C:/Users'

参考:エスケープシーケンス一覧

エスケープシーケンス 意味
\newline バックスラッシュと改行文字が無視されます
\\ バックスラッシュ (\)
\' 一重引用符 (')
\" 二重引用符 (")
\a ASCII 端末ベル (BEL)
\b ASCII バックスペース (BS)
\f ASCII フォームフィード (FF)
\n ASCII 行送り (LF)
\r ASCII 復帰 (CR)
\t ASCII 水平タブ (TAB)
\v ASCII 垂直タブ (VT)
\ooo 8 進数値 ooo を持つ文字
\xhh 16 進数値 hh を持つ文字
\N{name} Unicode データベース中で name という名前の文字
\uxxxx 16-bit の十六進値 xxxx を持つ文字
\Uxxxxxxxx 32-bit の十六進値 xxxxxxxx を持つ文字

(出典:2. 字句解析 — Python 3.6.5 ドキュメント

参考

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
104