qgrid 的 jupyter labextension 安装在可选依赖项上失败Windows

问题描述

当我尝试 jupyter labextension install qgrid 时它失败了,日志文件中的核心错误如下:

$ webpack --config webpack.prod.minimize.config.js
[webpack-cli] ModuleNotFoundError: Module not found: Error: Can't resolve 'base/js/dialog'

发生此错误的上下文非常复杂,有点有趣:

Windows 10 >> Conda 环境 >> jupyter labextension install >> npm >> node yarn.js run >> webpack

从两天前开始,conda 环境中的所有东西都是新安装的。 (jupyter 实验室版本 3.0.9,节点版本 v14.16.0)

错误特别有趣的是,代码中对 base/js/dialog 的唯一引用是来自 qgrid.widget.js 的以下语句:

try {
  dialog = require('base/js/dialog');
} catch (e) {
  console.warn("qgrid was unable to load base/js/dialog. " +
               "Full screen button won't be available");
}

现在我不知道 webpack 是如何工作的,但似乎可选负载以某种方式导致了硬故障。我正在寻找有关如何解决错误的任何见解。

(附加说明:我也试过 jupyter lab build 以防万一它会神奇地解决问题,但它导致了同样的错误。)

解决方法

这很可能是由于 qgrid 未更新以与 JypyterLab 3 配合使用造成的。https://github.com/quantopian/qgrid 处有几个相关问题,例如#351

不幸的是,这个扩展似乎没有定期更新。如果您不想留在 J2,那么您可以查看 perspectiveipyaggrid。我在 JL3 上都用过。