更改IPython/Jupyter笔记本的工作目录

321

当我打开Jupyter笔记本(之前是IPython),它默认打开在C:\Users\USERNAME目录下。

我该如何更改默认打开位置到其他地方?


1
这个链接可能会很有用。 - Shashank Sawant
你可以更改目录,然后执行 jupyter lab . 参考链接:https://dev59.com/CLjoa4cB1Zd3GeqPAY6u#66395692 - hiru007
32个回答

233

jupyter notebook --help-all可能会有所帮助:

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

如果需要,您当然可以在您的个人资料中设置它,在 Windows 中可能需要转义反斜杠。

请注意,这将覆盖您在 jupyter_notebook_config.py 文件中设置的任何路径(在该文件中,您可以设置一个变量 c.NotebookApp.notebook_dir ,它将是您的默认启动位置)。


2
它是用于 Windows 的什么? - Arjun Chaudhary
已确认此方法在Mac OSX上可行,适用于jupyterlab 0.31.5 / IPython 6.2.1。 - Brad Solomon
10
在Windows系统中,运行以下命令可以打开Jupyter Notebook:jupyter notebook --notebook-dir=C:\my_python_project\。请注意,此命令将打开Jupyter Notebook并将工作目录设置为C盘下名为“my_python_project”的文件夹。 - msysmilu
14
这并不会改变笔记本的工作目录。它只是设置查找笔记本的初始位置。一旦您导航/打开笔记本,工作目录将是您打开它的位置。 - Sonic Soul
1
有没有任何想法适用于没有管理员权限的人如何配置这个?当我从Anaconda运行它时,它会自动打开Jupyter笔记本并且不让我定义任何东西。 - Miguel Costa
显示剩余2条评论

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

16
谢谢你的有用提示。我在使用Python3 Jupyter笔记本时,一直在使用!cd命令,但它无法正常工作,现在我已经找到了一个可行的解决方案。 - upendra
2
非常好的答案,不依赖于系统,并且实际上做了问题所要求的事情。 - Igor sharm
2
如果您需要进行相对导入,则此方法无法帮助您。 - Paloha
2
必须使用这个(%)而不是!,它不会改变工作目录。 - Pellet
你在哪里输入这些命令? - jrive
在Jupyter Notebook中,以"!"和"%"为前缀的命令有何区别? - 4t8dds

73

适用于Windows 10

  1. 在 C:\Users\your_user_name\.jupyter 目录下查找 jupyter_notebook_config.py 文件,或使用 Cortana 搜索。

  2. 如果没有该文件,则打开命令提示符窗口并键入:

    jupyter notebook --generate-config

  3. 打开 jupyter_notebook_config.py 并使用 ctrl-f 查找:

    c.NotebookApp.notebook_dir

  4. 去掉注释的 # 号。

  5. 将其改为:

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

    注意:您可以在第一个 ' 前面加上 u,将 \\\\ 更改为 / 或将 ' 更改为 "。我认为这没有关系。

  6. 右键单击 Jupyter Notebook 链接,选择属性。进入“快捷方式”菜单,单击目标。查找 %USERPROFILE% 并删除它。保存。重启 Jupyter。


6
我在使用Windows 10,尝试了所有之前的答案,而这是唯一有效的解决方案!最后一步非常关键。实际上,如果在最后一步中删除%USERPROFILE%,并将其替换为所需的目录,则可能不需要执行所有之前的步骤。 - Mateo

53

正如MrFancypants在评论中提到的那样,如果您正在使用Jupyter(应该这样做,因为它目前取代了较旧的IPython Notebook项目),情况会有一些不同。首先,没有配置文件了。

安装Jupyter之后,首先检查您的~/.jupyter文件夹以查看其内容。如果没有从默认的IPython配置文件迁移任何配置文件(就像我的情况一样),请为Jupyter Notebook创建一个新的配置文件:

jupyter notebook --generate-config

这将生成一个带有注释的~/.jupyter/jupyter_notebook_config.py文件,其中包含一些有用的选项。要设置默认目录,请添加以下内容:
c.NotebookApp.notebook_dir = u'/absolute/path/to/notebook/directory'

我在Linux和OS X之间切换,希望使用相对于我的主文件夹的路径(因为它们不同 - /Users/username/home/username),因此我设置了类似于以下内容:

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

现在,每当我运行jupyter notebook时,它会打开我想要的笔记本文件夹。我还将整个~/.jupyter文件夹的版本存储在我的 dotfiles repository中,将其部署到每台新的工作机器上。
作为旁注,您仍然可以使用--notebook-dir命令行选项,因此简单的别名可能更适合您的需求。
jupyter notebook --notebook-dir=/absolute/path/to/notebook/directory

1
我不理解 c.NotebookApp.notebook_dir = u'/absolute/path/to/notebook/directory' 中的 'u',似乎没有它也能正常工作。 - gota
是的,这可能是不必要的。它是在Python 2中创建Unicode字符串的一种方式(尝试type(u'bla')type('bla'))。在Python 3中,与没有u的字符串表达式相同(因为所有字符串都是Unicode)。 - metakermit
在Anaconda文件夹中打开命令窗口,然后输入“jupyter notebook --generate-config”,按照上述步骤操作。这对我有用。 :) - Mark K
但是,我如何在已经打开的笔记本上执行此操作?也就是说,在启动后如何更改笔记本目录?谢谢。 - Confounded
从jupyter_notebook_config.py文件中 ##已弃用,请使用base_url #c.NotebookApp.base_project_url = '/'##笔记本服务器的基本URL。c.NotebookApp.base_url = '/' - Vodyanikov Andrew

49

对于在Windows上使用IPython的用户来说,一个不错的技巧是您可以在每个项目目录中制作一个IPython图标,该图标旨在打开指向选择的项目的笔记本。这有助于保持事物分开。

例如,如果您在C:\ fake \ example \ directory中有一个新项目

将一个ipython笔记本图标复制到该目录中或创建一个指向Windows“ cmd” shell的新链接。然后右键单击该图标并“编辑属性”

设置快捷方式属性为:

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

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

(请注意在“start in”末尾添加了斜杠)

这将运行Windows命令行,切换到您的工作目录,并运行指向该目录的IPython笔记本。

将其中一个放在每个项目文件夹中,您将拥有保持良好分离的IPython笔记本组,同时距离双击只有一步之遥。

更新:IPython已删除对pylab命令行内联的支持,因此如果您使用较新的IPython版本(或显然不需要pylab),则使用此技巧的修复方法就是仅消除“--pylab inline”。

Jupyter Notebook 4.1.1版本更新

根据我的测试机和下面的评论报告,在最新的Jupyter构建中,似乎检查启动目录并以该目录作为工作目录启动。这意味着不需要工作目录覆盖。

因此,您的快捷方式可以简单地如下所示:

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

如果jupyter notebook不在您的PATH中,您只需要在命令前面添加完整的目录引用即可。如果这样做不起作用,请尝试使用早期版本。非常方便的是,在我的4.1.1及更高版本的测试中,“启动位置:”可以为空。也许他们阅读了SO上的这篇文章,并喜欢它,所以长时间投票支持,没有人再需要这个功能了 :)


8
我发现你可以复制在“开始菜单”中使用的快捷方式,并将 “起始位置” 设为空白,这样IPython就会以所在的目录作为工作目录启动。 - Christoph
Christoph,你能分享一下你的图标有什么“目标”吗?我无法复制你描述的方法。当我将“开始位置”留空时,它会在安装目录中打开。你能用“-pylab inline”运行吗?我想知道是不是我的命令行用法限制了我使用你的快捷方式。 - Ezekiel Kruglick
2
请注意,随着Ipython 3.1的推出,此解决方案必须进行轻微更改,因为不再支持--pylab。取而代之的是,在ipython笔记本中写入“--pylab inline”的地方,请写入“ipython notebook”。 - tagoma
2
我发现这在最新版本的Jupyter Notebook上不起作用,是真的吗?那么我该如何更改它? - ZK Zhao
我可以在命令提示符中的工作目录下运行 jupyter notebook。但是我无法设置 启动位置 以使笔记本在所需目录中启动。 - ZK Zhao
显示剩余6条评论

37
在Windows上的iPython笔记本中,以下方式对我有效:

cd d:\folder\

3
同样适用于Linux操作系统,例如,cd ~/whatever - Pete

36

除了 @Matt 的方法,另一种永久更改notebooks默认目录的方式是更改配置文件。首先在命令行中输入:

$> ipython profile create

要使用默认配置文件初始化个人资料。其次,在文件ipython_notebook_config.py中取消注释并编辑此行:

# c.NotebookManager.notebook_dir = 'D:\\Documents\\Desktop'

D:\\Documents\\Desktop更改为您喜欢的任何路径。

这对我有用;)

更新:不再有c.NotebookManager.notebook_dir。 现在,要取消注释和配置的行是这个: c.NotebookApp.notebook_dir = 'Z:\\username_example\folder_that_you_whant'


15
如果您使用的是Jupyter,则命令更改为“jupyter notebook --generate-config”,要修改的行位于“jupyter\jupyter_notebook_config.py”中,即“c.NotebookApp.notebook_dir =”。 - MrFancypants
谢谢,这真的帮了我很多。 - thenac

23

通常情况下,$ ipython notebook 将在终端所在的当前工作目录中启动笔记本和内核。

但是如果你想指定启动目录,可以使用以下 --notebook-dir 选项:

$ ipython notebook --notebook-dir=/path/to/specific/directory


18

运行 IPython 之前:

  1. 切换到您首选的目录
  2. 运行 IPython

运行 IPython 之后:

  1. 使用 %cd /输入/您/首选的/路径/这里/
  2. 使用 %pwd 检查当前目录

作为一个不错的解决方案,我建议使用virtualenvwrapper为每个环境分配一个目录。除了虚拟环境的所有优点外,通过激活每个环境,您可以被引导到特定的目录。请查看以下链接中的文档: https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html#project-directory-management 如果您使用python的anaconda发行版,您可以使用 - Farhad Maleki

13

对于Linux和Windows系统:

只需修改一行,即可进行更改。

1. Open file

cwp.py

位于

C:\Users\ [你的计算机名称]\Anaconda2

目录下。

2. find the line 

将代码末尾的:

os.chdir(documents_folder)

修改为:

os.chdir("你期望的工作目录")

例如: os.chdir("D:/Jupyter_folder")

3. save and close.

它起作用了。


更新:

当涉及到MacOS时,我找不到cwp.py文件。 这是我找到的:

在您的Macbook上打开终端,运行'jupyter notebook --generate-config'。

它将在/Users/[your_username]/.jupyter/jupyter_notebook_config.py中创建一个配置文件。

打开配置文件,然后将此行更改为 c.NotebookApp.notebook_dir = '您的路径' 并记住取消注释此行。

例如,我将我的路径更改为'/Users/catbuilts/JupyterProjects/'。


1
对我来说没问题,在MacOS Ventura 13.6上。谢谢! - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接