未提供项目描述
项目描述
Python 中的 Jupyter 内核基类,包括核心魔术功能(包括帮助、命令和文件路径完成、并行和分布式处理、下载等)。
请参阅 Jupyter 关于wrapper kernels的文档。
额外的魔法可以安装在魔法子包下的新内核包中。
特征
- 所有内核的基本线和单元魔术集。
用于访问 Python 解释器的 Python 魔法。
并行运行内核。
贝壳魔法。
课堂管理魔法。
魔术和文件路径的选项卡完成。
帮助使用魔法?或 Shift+Tab。
用于设置默认绘图行为的绘图魔法。
基于元内核的内核
matlab_kernel,https://github.com/Calysto/matlab_kernel
octave_kernel,https://github.com/Calysto/octave_kernel
calysto_scheme,https://github.com/Calysto/calysto_scheme
calysto_processing,https://github.com/Calysto/calysto_processing
java9_kernel,https://github.com/Bachmann1234/java9_kernel
xonsh_kernel,https://github.com/Calysto/xonsh_kernel
calysto_hy,https://github.com/Calysto/calysto_hy
gnuplot_kernel,https://github.com/has2k1/gnuplot_kernel
spylon_kernel,https://github.com/mariusvniekerk/spylon-kernel
wolfram_kernel,https://github.com/mmatera/iwolfram
sas_kernel, https://github.com/sassoftware/sas_kernel
pysysh_kernel,https://github.com/Jaesin/psysh_kernel
calysto_bash,https://github.com/Calysto/calysto_bash
……还有许多其他人。
安装
您可以通过pip安装 Metakernel :
从conda - forge 频道安装metakernel可以通过将conda -forge 添加到您的频道来实现:
启用 conda-forge 通道后,可以安装metakernel:
可以使用以下命令列出您平台上可用的所有元内核版本:
在 IPython 中使用 MetaKernel Magics
尽管 MetaKernel 是一个用于构建新内核的系统,但您可以使用 IPython 内核中的一部分魔法。
from metakernel import register_ipython_magics
register_ipython_magics()
将以下内容放入您的(或系统范围的)ipython_config.py文件中:
# /etc/ipython/ipython_config.py
c = get_config()
startup = [
'from metakernel import register_ipython_magics',
'register_ipython_magics()',
]
c.InteractiveShellApp.exec_lines = startup
并行使用 MetaKernel 语言
要并行使用 MetaKernel 语言,请执行以下操作:
确保安装了 Python 模块ipyparallel。在外壳中,键入:
pip install ipyparallel
要在笔记本中启用扩展,请在 shell 中键入:
ipcluster nbextension enable
要在本地 IP 地址上启动具有 10 个节点的集群,请在 shell 中键入:
ipcluster start --n=10 --ip=192.168.1.108
从主机内核MODULE和CLASSNAME(可以是任何元内核内核)初始化代码以使用笔记本内部的 10 个节点:
%parallel MODULE CLASSNAME
例如:
%parallel calysto_scheme CalystoScheme
在 notebook 中并行运行代码,键入:
并行执行一行:
%px (+ 1 1)
或者并行执行整个单元格:
%%px
(* cluster_rank cluster_rank)
结果以cluster_rank顺序返回到 Python 列表(方案向量)中。(这将是未来的 JSON 表示)。
因此,以上将产生结果:
#10(0 1 4 9 16 25 36 49 64 81)
您可以通过访问变量_(单下划线)或使用--set_variable VARIABLE标志,在主机内核中的任何并行魔法( %px、%%px或%pmap )中获取结果,如下所示:
%%px --set_variable results
(* cluster_rank cluster_rank)
然后,在下一个单元格中,您可以访问results。
请注意,您可以使用变量cluster_rank来划分问题的各个部分,以便每个节点处理不同的事情。
在上面的示例中,也使用-e来评估主机内核中的代码。请注意,cluster_rank未在主机上定义,并且假定主机内核与并行机器相同。
配置
元内核子类可以由用户配置。配置文件名由子类的app_name属性决定。例如,在Octave内核中,它是octave_kernel。内核用户可以将octave_kernel_config.py文件添加到他们的 jupyter配置路径。基础MetaKernel类提供plot_settings作为可配置的特征。子类可以定义他们希望可配置的其他特征。
举个例子:
cat ~/.jupyter/octave_kernel_config.py
# use Qt as the default backend for plots
c.OctaveKernel.plot_settings = dict(backend='qt')
文档
示例笔记本可以在这里查看。
有关版本信息,请参阅变更日志。