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バックスラッシュと改行文字が無視されます\\バックスラッシュ (\)\'一重引用符 (')\"二重引用符 (")\aASCII 端末ベル (BEL)\bASCII バックスペース (BS)\fASCII フォームフィード (FF)\nASCII 行送り (LF)\rASCII 復帰 (CR)\tASCII 水平タブ (TAB)\vASCII 垂直タブ (VT)\ooo8 進数値 ooo を持つ文字\xhh16 進数値 hh を持つ文字\N{name}Unicode データベース中で name という名前の文字\uxxxx16-bit の十六進値 xxxx を持つ文字\Uxxxxxxxx32-bit の十六進値 xxxxxxxx を持つ文字

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

参考

    • Jupyter Notebookのホームディレクトリを変更する方法 | あずみ.net

 

    unicodeのraw文字列は \ をエスケープしない場合がある – かせきのうさぎさん
广告
将在 10 秒后关闭
bannerAds