Jupyter Notebook,Python:如何在函数内调用魔法?

时间:2017-01-10 05:15:52

标签: python jupyter-notebook

我正在使用Jupyter Notebook,并且正在尝试根据Github上的模板创建一个小部件。

模板在某些时候使用了魔法%%javascript。这可以直接粘贴在笔记本电脑的单元格中。

但是当我尝试从小部件中创建一个函数时,使用%%javascript表达式会使它返回错误:

%%javascript SyntaxError: invalid syntax

任何人都知道如何“转换”magic命令,以便可以在函数内正确调用它(该函数保存在单独的文件中)

1 个答案:

答案 0 :(得分:6)

如果你使用? IPython内置,你可以看到魔法的路径。例如,%%javascript?表示它位于lib\site-packages\ipython\core\magics\display.py

然后您可以将其导入并将其用作标准;例如,如果您从笔记本中运行它,则会弹出一个警告框:

from IPython.core.magics.display import Javascript
Javascript('alert("hello world")')

编辑:要获得您在评论中发布的示例,只需将您想要在引号中运行的Javascript包装起来并使用Javascript进行调用。用这个替换In[4]会弹出正常的窗口,并且可以包含在普通的Python函数中。

from IPython.core.magics.display import Javascript
Javascript("""$('div.inspector')
    .detach()
    .prependTo($('body'))
    .css({
        'z-index': 999, 
        position: 'fixed',
        'box-shadow': '5px 5px 12px -3px black',
        opacity: 0.9
    })
    .draggable();""")