繁体   English   中英

jupyter笔记本 - 检查魔法是否可用

[英]jupyter notebook - check if magic is available

我试图使用ipykernel.comm在javascript中调用python命令。 问题是我想使用相同的代码,无论我运行python3内核还是pyspark3内核。 对于后者,我需要使用%% local cell magic运行代码,这对于纯python 3内核不起作用。

如何以编程方式检查给定(前端)魔法是否可用?

我试着查看get_ipython().magics_manager.registry但我觉得这不是问题。 我试着看一下前端(javascript),但我也找不到它。

我想也许sparkmagic的来源会帮助我,但没有运气。 我不知道如何访问IPython.CodeCell.config_defaults

sparkmagic的kernel.js

而不是检查命令是否可用,您只需使用它并捕获异常(如果不支持)。

例:

from IPython.core.error import UsageError
try:
    %%local
except UsageError:
    print("Magic %%local not support in this kernel")

您可以通过以下方式获得可用的魔法:

from IPython import get_ipython

line_magics = list(get_ipython().magics_manager.magics.get('line'))
cell_magics = list(get_ipython().magics_manager.magics.get('cell'))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM