【发布时间】:2011-12-28 14:43:53
【问题描述】:
我们如何从命令行评估 Mathematica 笔记本(即在命令行模式下运行内核时)?
假设我们在远程机器上工作。我知道可以将笔记本转换为 m 文件并对其进行评估,但我很好奇是否可以直接使用笔记本进行此操作。
这是我目前所拥有的:
首先,we need to start a headless X server 在远程 Linux 机器上,这样前端就可以在那里运行(并打开笔记本)。如果您在本地计算机上工作,请跳过此步骤。
Xvfb :1 &
export DISPLAY=:1
在此之后,我启动了一个 Mathematica 内核 (math) 并执行了以下操作。
必须使用UsingFrontEnd,因为打开笔记本需要前端。 test.nb 有一个包含a=1 的输入单元格。
In[1]:= nb=UsingFrontEnd@NotebookOpen["test.nb"]
Out[1]= -NotebookObject-
在尝试评估笔记本后,显然我得到了dialog,我需要使用Return[] 才能返回。我不确定为什么输入行再次从 1 开始计数(前端启动了新内核?)请注意,a 没有获得值。
In[2]:= UsingFrontEnd@NotebookEvaluate[nb]
In[1]:= a
Out[1]= a
In[2]:= Return[]
Out[2]= a
从对话框返回后,a 仍然没有值。
In[3]:= a
Out[3]= a
【问题讨论】:
-
看起来我们的工作方式相似,而且同样懒惰!
-
+1 我也很想知道这个!我很想在我们的 HPC 上的远程系统上评估我的笔记本。
标签: wolfram-mathematica mathematica-frontend