簡體   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