如何在没有文件名的情况下运行javascript

如何在没有文件名的情况下运行javascript,javascript,ipython,jupyter-notebook,ipython-notebook,jupyter,Javascript,Ipython,Jupyter Notebook,Ipython Notebook,Jupyter,我对编码是新手,所以我有一个关于Jupyter笔记本和Javascript使用的问题。我当前代码的一个片段如下所示:trueName在此代码之前定义,pickle.dump通常是选项卡式的,但由于堆栈溢出的格式问题,这里没有: 这很好,但出于某种原因,当我将其放入以下格式时: from IPython.core.display import Javascript Javascript(""" var kernel = Jupyter.notebook.kernel; console.log(ke

我对编码是新手,所以我有一个关于Jupyter笔记本和Javascript使用的问题。我当前代码的一个片段如下所示:trueName在此代码之前定义,pickle.dump通常是选项卡式的,但由于堆栈溢出的格式问题,这里没有:

这很好,但出于某种原因,当我将其放入以下格式时:

from IPython.core.display import Javascript
Javascript("""
var kernel = Jupyter.notebook.kernel;
console.log(kernel);
var command = "import pickle" + "\n" + "file_name = 'testfile'" + "\n" + "with open(file_name, 'wb') as my_file_obj:" + "\n" + " "pickle.dump(trueName,my_file_obj)";
kernel.execute(command);""")
即使代码相同,我仍获得以下错误:

添加输出时出现Javascript错误! SyntaxError:无效或意外的令牌 有关更多详细信息,请参阅浏览器Javascript控制台

我曾希望使用第二种方法,以便在使用类似的东西时绕过神奇的命令屏障!ipythonsomefile.ipy 阅读javascript,但由于某种原因,第二种方法确实不喜欢var命令,这是我在经过大量测试后发现的。我有几个问题,如果能收到以下方面的反馈,我将不胜感激:

为什么第二个方法由于我的var命令而提供错误?我不明白为什么会发生这种情况。我必须使用“textarea”是真的吗?如果是,我该怎么做?当我自己尝试这样做时,我迷失了方向: 有没有一种方法可以让我在不直接在笔记本中运行Javascript magic?我已经尝试在一个单独的文件中对代码运行ipython,结尾为.ipy,如上所示,但它不喜欢运行cell magic或从ipython.core.display导入。此方法不适用于我: 在使用def run_javascriptcode:等函数时,有没有一种方法可以不通过文件直接执行Javascript代码?在Jupyter中执行一个单元格会返回参数代码下的代码,但我无法找到如何运行它。我一直在四处寻找,但我找到的唯一答案是关于!节点somefile.js和其他类似的基于文件名的Javascript代码。 我将感谢任何帮助!关于如何按照我的意愿运行python代码,我确实提出了一些建议,但由于IPython不能与Javascript一起工作,我对python提示感到困惑:
当您使用from IPython.core.display import Javascript时,这应该可以工作。这是一个在评估时将返回的数据存储在作用域中的类,一旦返回,数据就不再可用。使用window.variable指定给窗口对象,使其全局可用

from IPython.core.display import Javascript
    Javascript("""
    var kernel = Jupyter.notebook.kernel;
    window.variable = kernel;
    var command = "list";
    window.variable = command;
    console.log(kernel.execute(command));""")
我是从这里得到这个主意的

from IPython.core.display import Javascript
    Javascript("""
    var kernel = Jupyter.notebook.kernel;
    window.variable = kernel;
    var command = "list";
    window.variable = command;
    console.log(kernel.execute(command));""")