patrickfuller / imolecule

An embeddable webGL molecule viewer and file format converter.
http://patrickfuller.github.io/imolecule/
MIT License
86 stars 18 forks source link

Not working on jupyter lab #32

Open liwt31 opened 6 years ago

liwt31 commented 6 years ago

Recently I switched from jupyter notebook to jupyter lab and I found imolecule not working. In a jupyter lab notebook, imolecule.draw("CC1(C(N2C(S1)C(C2=O)NC(=O)CC3=CC=CC=C3)C(=O)O)C") yields no error nor output. However, in the bowser (chrome) inspection console, the browser reports that JupyterLab does not execute inline JavaScript in HTML output. If I use jupyter notebook, everything is fine.

thoth291 commented 3 years ago

The same with me. In the Jupyter Notebook - I can see the molecule but get this in the browser console:

THREE.WebGLRenderer 71
VM137:15 Uncaught TypeError: $d.resizable is not a function
    at <anonymous>:15:19
    at Object.execCb (require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1693)
    at Module.check (require.js?v=951f856e81496aaeec2e71a1c2c0d51f:881)
    at Module.enable (require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1173)
    at Module.init (require.js?v=951f856e81496aaeec2e71a1c2c0d51f:786)
    at require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1457
    (anonymous) @ VM137:15
    execCb @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1693
    check @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:881
    enable @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1173
    init @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:786
    (anonymous) @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1457
    setTimeout (async)
    req.nextTick @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1812
    localRequire @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1446
    requirejs @ require.js?v=951f856e81496aaeec2e71a1c2c0d51f:1794
    (anonymous) @ VM137:4
    b @ main.min.js?v=68936091b7b2dafbb368b29294028b02:2
    Pe @ main.min.js?v=68936091b7b2dafbb368b29294028b02:2
    append @ main.min.js?v=68936091b7b2dafbb368b29294028b02:2
    OutputArea._safe_append @ main.min.js?v=68936091b7b2dafbb368b29294028b02:35210
    OutputArea.append_display_data @ main.min.js?v=68936091b7b2dafbb368b29294028b02:35417
    OutputArea.append_output @ main.min.js?v=68936091b7b2dafbb368b29294028b02:35097
    OutputArea.handle_output @ main.min.js?v=68936091b7b2dafbb368b29294028b02:35008
    output @ main.min.js?v=68936091b7b2dafbb368b29294028b02:36844
    Kernel._handle_output_message @ main.min.js?v=68936091b7b2dafbb368b29294028b02:38605
    i @ main.min.js?v=68936091b7b2dafbb368b29294028b02:2
    Kernel._handle_iopub_message @ main.min.js?v=68936091b7b2dafbb368b29294028b02:38645
    Kernel._finish_ws_message @ main.min.js?v=68936091b7b2dafbb368b29294028b02:38424
    (anonymous) @ main.min.js?v=68936091b7b2dafbb368b29294028b02:38415
    Promise.then (async)
    Kernel._handle_ws_message @ main.min.js?v=68936091b7b2dafbb368b29294028b02:38415
    i @ main.min.js?v=68936091b7b2dafbb368b29294028b02:2

In the Jupyter Lab - I can't see the molecule and get this as an error:

VM6540:2 Uncaught ReferenceError: require is not defined
    at <anonymous>:2:12
    at PanelLayout.push.2DVW.PanelLayout.attachWidget (index.es6.js:2758)
    at PanelLayout.push.2DVW.PanelLayout.insertWidget (index.es6.js:2661)
    at OutputArea._insertOutput (widget.js:396)
    at OutputArea.onModelChanged (widget.js:216)
    at invokeSlot (index.es6.js:459)
    at Object.emit (index.es6.js:416)
    at Signal.push.JGtG.Signal.emit (index.es6.js:99)
    at OutputAreaModel._onListChanged (model.js:231)
    at invokeSlot (index.es6.js:459)

I don't know how useful is this - I'm not familiar with JS on the level to be informative - but wonder if someone can fix support for Jupyter Lab.

Thanks in Advance!