从 IPython Notebook 迁移#
摘要#
The Big Split 将 IPython 的各种与语言无关的组件移到了 Jupyter 的保护伞下。今后,Jupyter 将包含服务于多种语言的与语言无关的项目。IPython 将继续专注于 Python 及其与 Jupyter 的使用。
本文档描述了从 IPython 版本 3 迁移到 Jupyter 时所做的更改,以及您可能需要如何修改代码或配置。
理解迁移过程#
文件的自动迁移#
第一次运行任何 jupyter
命令时,它将执行文件的自动迁移。自动迁移过程 复制 文件,而不是移动文件,原始文件保持不变,副本位于 Jupyter 文件位置。如果需要,您可以通过调用 jupyter migrate
重新运行迁移。您的自定义配置将自动迁移,并且应该无需进一步编辑即可与 Jupyter 一起工作。当您将来更新或修改配置时,请记住文件位置可能已更改。
我的配置文件去哪儿了?#
也称为:“为什么我的配置不再起作用了?”
Jupyter 从 IPython 分离出来意味着一些文件的位置已经改变,并且 Jupyter 项目并没有继承 IPython 的所有做法。
当你启动第一个 Jupyter 应用程序时,相关的配置文件会自动复制到新的 Jupyter 位置。原始位于 IPython 位置的配置文件对 Jupyter 的执行没有影响。如果你不小心编辑了原始的 IPython 配置文件,你可能不会在 Jupyter 中看到预期的效果。你应该检查你正在编辑的是 Jupyter 的配置文件,并且在重启 Jupyter 服务器后,你应该会看到预期的效果。
查找重要文件的位置#
本节提供IPython 3文件和迁移的Jupyter文件常见位置的快速参考。
配置文件#
配置文件根据用户的偏好自定义 Jupyter。迁移的文件应全部 自动复制 到它们新的 Jupyter 位置。以下是位置变化:
IPython 位置 |
Jupyter 位置 |
|
---|---|---|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
要选择一个不同于默认 ~/.jupyter
的目录位置,请设置 JUPYTER_CONFIG_DIR
环境变量。设置环境变量后,您可能需要运行 jupyter migrate
以将文件复制到所需目录。
数据文件:内核规范和笔记本扩展#
数据文件包括用户安装的文件,除了配置文件之外。例如,内核规范和笔记本扩展。与配置文件一样,数据文件也会**自动迁移**到它们新的 Jupyter 位置。
在 IPython 3 中,数据文件存放在 ~/.ipython
目录下。
在 Jupyter 中,数据文件使用平台适当的位置:
OS X:
~/Library/Jupyter
Windows: 在
%APPDATA%
环境变量中指定的位置在其他地方,
$XDG_DATA_HOME
被尊重,默认值为~/.local/share/jupyter
。
在所有情况下,可以使用 JUPYTER_DATA_DIR
环境变量来显式设置位置。
系统范围内安装的数据文件(例如在 /usr/local/share/jupyter
中)没有变化。每个用户安装的数据文件的位置已从 .ipython
更改为平台相应的 Jupyter 位置。
由于 Jupyter 没有配置文件,我该如何自定义它?#
虽然 IPython 有 配置文件 的概念,但 Jupyter 没有配置文件。
在 IPython 中,配置文件是配置和运行时文件的集合。在 IPython 目录(~/.ipython
)中,有名称类似于 profile_default
或 profile_demo
的目录。每个目录中都包含配置文件(ipython_config.py
、ipython_notebook_config.py
)和运行时文件(history.sqlite
、security/kernel-*.json
)。配置文件可以用于在 IPython 的不同配置之间切换。
以前,人们可以使用 ipython notebook --profile demo
这样的命令来为 notebook 服务器 和 IPython 内核设置配置文件。这在 Jupyter 中不再可能一次性完成,就像在 IPython 3 中对其他内核也不可能一样。
更改 Jupyter notebook 配置目录#
如果你想更改笔记本配置,可以设置 JUPYTER_CONFIG_DIR
:
JUPYTER_CONFIG_DIR=./jupyter_config
jupyter notebook
更改 Jupyter notebook 配置文件#
如果你只想更改配置文件,你可以这样做:
jupyter notebook --config=/path/to/myconfig.py
使用自定义内核规范更改 IPython 的配置文件#
如果你确实想要更改 IPython 内核的配置文件,你不能再通过服务器命令行来完成。内核参数必须通过修改 kernelspec 来更改。你可以在不重启服务器的情况下完成此操作。每次启动新内核时,kernelspec 的更改都会生效。然而,没有一种很好的方式来修改 kernelspec。一种方法是使用 jupyter kernelspec list
来找到 kernel.json
文件,然后手动修改它,例如 kernels/python3/kernel.json
。另外,a2km 是一个实验性项目,旨在使这些操作更加简便。
例如,在 kernels/mycustom/kernel.json
下的自定义 kernelspec 中添加 --profile
选项(参见 Jupyter kernelspec 方向 这里):
{
"argv": ["python", "-m", "ipykernel",
"--profile=my-ipython-profile",
"-f", "{connection_file}"],
"display_name": "Custom Profile Python",
"language": "python"
}
然后你可以使用 --kernel=mycustom
命令行选项运行 Jupyter,IPython 将会找到相应的配置文件。
理解安装变化#
有关安装 Jupyter 的更多信息,请参阅 安装 页面。Jupyter 会自动迁移一些内容,如 Notebook 扩展和内核。
Notebook 扩展#
任何 IPython 笔记本扩展都应作为数据文件迁移的一部分 自动迁移。
Notebook 扩展是通过以下方式安装的:
ipython install-nbextension [--user] EXTENSION
现在,扩展是通过以下方式安装的:
jupyter nbextension install [--user] EXTENSION
笔记本扩展将被安装在系统范围内的位置(例如 /usr/local/share/jupyter/nbextensions
)。如果进行 --user
安装,笔记本扩展将放在 JUPYTER_DATA_DIR
位置。安装 不应该 通过猜测文件应该放在哪里来手动完成。
内核#
内核的安装方式与笔记本扩展非常相似。它们也将被 自动迁移。
内核规范过去常常通过以下方式安装:
ipython kernelspec install [--user] KERNEL
它们现在通过以下方式安装:
jupyter kernelspec install [--user] KERNEL
默认情况下,内核规范将存放在系统范围内的位置(例如 /usr/local/share/jupyter/kernels
)。如果进行 --user
安装,内核规范将存放在 JUPYTER_DATA_DIR
位置。安装 不应该 通过猜测文件应存放的位置来手动进行。
理解导入的变化#
IPython 4.0 包含了管理依赖的垫片;因此,所有在 IPython 3 上工作的导入在 IPython 4 上应该继续工作。如果你发现任何差异,请 告诉我们。
一些变化包括:
IPython 3 |
Jupyter 和 IPython 4.0 |
|
---|---|---|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
|
→ |
|
重要
IPython.kernel
分割
IPython.kernel
变成了两个包:
jupyter_client
用于 Jupyter 客户端 API。ipykernel
是 Jupyter 的 IPython 内核