从 IPython Notebook 迁移#
摘要#
大拆分将 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
以便将文件复制到所需的目录。
数据文件:kernelspecs 和 notebook 扩展#
数据文件包括除配置文件以外的用户安装的文件。示例包括 kernelspecs 和 notebook 扩展。与配置文件一样,数据文件也会自动迁移到它们新的 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
这样的命令来为笔记本服务器和IPython 内核设置配置文件。在 Jupyter 中,不再可以一次性完成此操作,就像在 IPython 3 中对任何其他内核一样。
更改 Jupyter 笔记本配置目录#
如果你想更改笔记本配置,可以设置 JUPYTER_CONFIG_DIR
JUPYTER_CONFIG_DIR=./jupyter_config
jupyter notebook
更改 Jupyter 笔记本配置文件#
如果你只想更改配置文件,可以执行
jupyter notebook --config=/path/to/myconfig.py
使用自定义内核规范更改 IPython 的配置文件#
如果你确实想更改 IPython 内核的配置文件,则无法再在服务器命令行中执行此操作。必须通过修改内核规范来更改内核参数。你可以在不重新启动服务器的情况下执行此操作。每次启动新内核时,内核规范更改都会生效。但是,没有很好的方法来修改内核规范。一种方法是使用 jupyter kernelspec list
来查找 kernel.json
文件,然后手动修改它,例如 kernels/python3/kernel.json
。或者,a2km 是一个实验项目,试图让这些事情变得更容易。
例如,将 --profile
选项添加到 kernels/mycustom/kernel.json
下的自定义内核规范(请参阅 Jupyter 内核规范说明 此处)
{
"argv": ["python", "-m", "ipykernel",
"--profile=my-ipython-profile",
"-f", "{connection_file}"],
"display_name": "Custom Profile Python",
"language": "python"
}
然后,你可以使用 --kernel=mycustom
命令行选项运行 Jupyter,IPython 将找到合适的配置文件。
了解安装更改#
有关安装 Jupyter 的更多信息,请参阅 安装和使用 页面。Jupyter 会自动迁移某些内容,如笔记本扩展和内核。
笔记本扩展#
任何 IPython 笔记本扩展都应在数据文件迁移过程中自动迁移。
笔记本扩展已通过以下方式安装
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 内核