Не удается подключиться к ядру ijavascript / Не удается найти модуль '../build/Release/zmq.node' - PullRequest
0 голосов
/ 22 февраля 2019

У меня установлен jupyterhub с ноутбуком jupyterlab / jupyter.Я установил расширение ijavascript.Запуская блокнот jupyter и открывая новый блокнот с ядром javascript, я получаю сообщение: «Ядро запускается, пожалуйста, подождите ...»

На консоли я получаю следующие сообщения:

[I 15:22:24.145 NotebookApp] KernelRestarter: restarting kernel (4/5),
new random ports internal/modules/cjs/loader.js:582
    throw err;
    ^
Error: Cannot find module '../build/Release/zmq.node'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:580:15)
    at Function.Module._load (internal/modules/cjs/loader.js:506:25)
    at Module.require (internal/modules/cjs/loader.js:636:17)
    at require (internal/modules/cjs/helpers.js:20:18)
    at Object.<anonymous> (/opt/anaconda3/lib/node_modules/ijavascript/node_modules/zeromq/lib/index.js:6:11)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)

Моя система Ubuntu 18.4

У меня установлен "Anaconda3-2018.12-Linux-x86_64.sh" от имени пользователя root в "/opt/anaconda3".

Ноутбуки Jupyter, jupyterlab и jupyterhub работаютхорошо.Записные книжки ядра Python3 работают отлично, и я мог установить несколько расширений jupyter lab:

JupyterLab v0.35.4
Known labextensions:
   app dir: /opt/anaconda3/share/jupyter/lab
        @jupyter-widgets/jupyterlab-manager v0.38.1  enabled  OK
        @jupyterlab/hub-extension v0.12.0  enabled  OK
        @jupyterlab/latex v0.6.1  enabled  OK
        @jupyterlab/plotly-extension v0.18.2  enabled  OK
        @jupyterlab/xkcd-extension v0.6.0  enabled  OK
        @krassowski/jupyterlab_go_to_definition v0.1.4  enabled  OK
        @lckr/jupyterlab_variableinspector v0.1.0  enabled  OK
        @mflevine/jupyterlab_html v0.1.4  enabled  OK
        jupyter-matplotlib v0.3.0  enabled  OK
        jupyterlab-drawio v0.5.0  enabled  OK
        jupyterlab_bokeh v0.6.3  enabled  OK

После установки nodejs и добавления информации о прокси в .npmrc (/ etc / environment уже была установлена) я мог установить ядро ​​javascriptпосле того, как я установил nodejs:

conda install nodejs

conda install -c krinsman ijavascript

/opt/anaconda3/bin/npm install -g ijavascript

Где-то в строке я попытался / opt / anaconda3 / bin / npm install -g zeromq

Поскольку я получал ошибки при попытке установить ijsinstall.

Наконец-то я смог установить ядро ​​с помощью:

/opt/anaconda3/bin/ijsinstall --spec-path=full --install=global

Ядро (ссылки, записи и тому подобное) доступно в блокноте jupyter, а также в стартовом окне jupyterlab.Однако через некоторое время связь с ядром отсутствует.(В ядре jupyterlab отображается сообщение «Нет ядра»). На консоли появляется вышеупомянутое сообщение об ошибке (для записной книжки juypter):

Error: Cannot find module '../build/Release/zmq.node'
    at Function.Module._resolveFilename internal/modules/cjs/loader.js:580:15)

A

    find /opt/anaconda3 -name "zmq.node"

возвращает следующее:

/opt/anaconda3/pkgs/ijavascript-v5.0.20-0/lib/node_modules/ijavascript/node_modules/zeromq/build/Release/zmq.node
/opt/anaconda3/lib/node_modules/zeromq/build/Release/zmq.node

При попытке «ijskernel» выдается то же сообщение об ошибке, что и:

ijsnotebook --allow-root

Нужно ли устанавливать ijavascript по-другому?Нужно ли копировать / ссылаться на zmq.node где-нибудь еще?Проблема в том, работает ли от имени пользователя root или как служба?

Выполнение следующей команды в / opt / anaconda3:

grep --include=\*.js -rnw -e 'build/Release/zmq.node'

Обнаружено:

pkgs/ijavascript-v5.0.20-0/lib/node_modules/ijavascript/node_modules/zeromq/lib/index.js:6:  , zmq = require('../build/Release/zmq.node')
lib/node_modules/zeromq/lib/index.js:6:  , zmq = require('../build/Release/zmq.node')
lib/node_modules/ijavascript/node_modules/zeromq/lib/index.js:6:  , zmq = require('../build/Release/zmq.node')

в то время как

find . -name "zmq.node"

обнаружил следующее

./pkgs/ijavascript-v5.0.20-0/lib/node_modules/ijavascript/node_modules/zeromq/build/Release/zmq.node
./lib/node_modules/zeromq/build/Release/zmq.node

Удаление ijavascript и zermq, переустановка и копирование zmq.node в каталог, указанный в сообщении об ошибке, изменяет сообщение об ошибке (при попытке ijskernel):

KERNEL: ARGV: [ '/opt/anaconda3/bin/node', '/opt/anaconda3/bin/ijskernel' ]
Usage: node kernel.js [--debug] [--hide-undefined] [--protocol=Major[.minor[.patch]]] [--session-working-dir=path] [--show-undefined] [--startup-script=path] connection_file
/opt/anaconda3/lib/node_modules/ijavascript/lib/kernel.js:190
        throw e;
        ^

Error: Error: missing connection_file
    at parseCommandArguments (/opt/anaconda3/lib/node_modules/ijavascript/lib/kernel.js:182:19)
    at Object.<anonymous> (/opt/anaconda3/lib/node_modules/ijavascript/lib/kernel.js:46:14)
    at Module._compile (internal/modules/cjs/loader.js:688:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
    at Module.load (internal/modules/cjs/loader.js:598:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
    at Function.Module._load (internal/modules/cjs/loader.js:529:3)
    at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
    at startup (internal/bootstrap/node.js:285:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:739:3)

ijsnotebook --allow-root

или

jupyter notebook --allow-root

или

jupyter lab --allow-root

для запуска локальной записной книжки, которая может подключаться к ядру javascript.

Этоне работает через jupyterhub.

1 Ответ

0 голосов
/ 23 февраля 2019

Кажется, что все сводится к:

https://github.com/n-riesco/ijavascript/issues/184

Я не мог понять, как мне установить zeromq.

...