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が起動しない。
この原因は,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 ドキュメント) |