1

我正在尝试使用命令行在 WebPPL 中运行一个简单的脚本,该脚本运行以下可视化:

var fairCoin = function() { flip(0.5) ? 'h' : 't' };
viz(repeat(20, fairCoin))

按照 GitHub repo 上的说明,我已经安装了 webppl,并且还通过npm install probmods/webppl-viz在文件夹中运行来安装 webppl-viz ~/.webppl。我还通过输入将 node-canvas 安装在同一文件夹中npm install canvas。但是,我收到以下错误:

/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-scenegraph/src/util/bound.js:18
  return g2D || (g2D = canvas.instance(1,1).getContext('2d'));
                                           ^

TypeError: Cannot read property 'getContext' of null
    at context (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-scenegraph/src/util/bound.js:18:44)
    at textMark (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-scenegraph/src/util/bound.js:169:11)
    at Object.itemBounds [as item] (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-scenegraph/src/util/bound.js:259:3)
    at /Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega/src/scene/Bounder.js:36:13
    at Array.forEach (<anonymous>)
    at Bounder.proto.evaluate (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega/src/scene/Bounder.js:35:15)
    at Model.prototype.evaluate (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-dataflow/src/Graph.js:329:16)
    at Builder.proto.evaluate (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega/src/scene/Builder.js:227:26)
    at Model.prototype.evaluate (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-dataflow/src/Graph.js:329:16)
    at Model.prototype.propagate (/Users/sambarnett/.webppl/node_modules/webppl-viz/node_modules/vega-dataflow/src/Graph.js:161:22)

我怀疑这是由于一些依赖项没有正确安装,尽管我不知道如何解决这个问题。我知道 WebPPL 脚本在浏览器中正确运行。

4

0 回答 0