Ячейки ноутбука не запускаются после первой ошибки до перезапуска ядра PyQ - PullRequest
0 голосов
/ 12 декабря 2018

Я использую ноутбук Jupyter с ядром PyQ и могу запускать как Python, так и q-код.НО: всякий раз, когда ячейка выдает ошибку (например, вызов nonexisting_function()), больше ячеек не выполняется, пока я не перезапущу ядро.В отличие от ядра Python, я могу запускать другие (или те же) ячейки и после ошибки, что я считаю нормальным поведением.
enter image description here Я использую miniconda3 с виртуальной средой (mypyq) на 64-битной Ubuntu.

(mypyq) user@workstation:~$ conda --version
conda 4.5.11
(mypyq) user@workstation:~$ conda list
# packages in environment at /home/user/miniconda3/envs/mypyq:
#
# Name                    Version                   Build  Channel
<lines skipped>
kdb                       3.6                  2018.10.23    kx
pyq                       4.1.4            py36h39e3cac_0    enlnt
pyq-kernel                1.0                       <pip>
python                    3.6.7                h0371630_0  
(mypyq) user@workstation:~$ jupyter notebook --debug
<lines skipped>

Запуск 6*7 в записной книжке:

[D 09:37:54.476 NotebookApp] activity on ...: status
[D 09:37:54.476 NotebookApp] activity on ...: execute_input
[D 09:37:54.477 NotebookApp] activity on ...: execute_result
[D 09:37:54.479 NotebookApp] activity on ...: status

Выход ячейки 42, пока все в порядке.

Сейчас выполняется nonexisting() взаписная книжка:

[D 09:38:38.266 NotebookApp] activity on ...: status
[D 09:38:38.267 NotebookApp] activity on ...: execute_input
[D 09:38:38.315 NotebookApp] activity on ...: error
[D 09:38:38.317 NotebookApp] activity on ...: status

Выход ячейки записной книжки:

------------------------------------
NameError   Traceback (most recent call last)
<ipython-input-2-124a31d9d771> in <module>
----> 1 nonexisting()

NameError: name 'nonexisting' is not defined

Запуск * ячейки 1024 * снова:

[D 09:39:29.799 NotebookApp] activity on ...: status
[D 09:39:29.799 NotebookApp] activity on ...: status

Мне не хватает как минимум ...: execute_resultв консоли.И в ноутбуке также нет вывода, пока я не перезапущу ядро.

Это не происходит с ядром Python, только с ядром PyQ.Запуск PyQ в консоли тоже подойдет:

(mypyq) user@workstation:~$ pyq
Python 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 19:19:38) 
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> q('9#til 3')
k('0 1 2 0 1 2 0 1 2')
>>> nonexisting()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'nonexisting' is not defined
>>> 6*7
42
>>> exit()

IPython тоже подойдет:

(mypyq) user@workstation:~$ pyq -m IPython
Python 3.6.7 |Anaconda, Inc.| (default, Oct 23 2018, 19:19:38) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.2.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: %load_ext pyq.magic                                                                                                          

In [2]: from pyq import q                                                                                                            

In [3]: q.til(10)                                                                                                                    
Out[3]: 0 1 2 3 4 5 6 7 8 9

In [4]: nonexisting()                                                                                                                
-------------------------------------------------------
NameError             Traceback (most recent call last)
<ipython-input-4-124a31d9d771> in <module>
----> 1 nonexisting()

NameError: name 'nonexisting' is not defined

In [5]: q.til(10)                                                                                                                    
Out[5]: 0 1 2 3 4 5 6 7 8 9

In [6]: exit()

После запуска ошибочной ячейки, когда я выключаю сервер ноутбука jupyter с помощью Ctrl-Cсообщает об истечении времени ожидания и уничтожении ядра.

Shutdown this notebook server (y/[n])? y
[C 11:03:05.086 NotebookApp] Shutdown confirmed
[I 11:03:05.086 NotebookApp] Shutting down 1 kernel
[D 11:03:10.100 NotebookApp] Kernel is taking too long to finish, killing
[I 11:03:10.106 NotebookApp] Kernel shutdown:

1 Ответ

0 голосов
/ 20 декабря 2018

Эта ошибка была исправлена ​​в pyq-kernel 1.0.1, который недавно был выпущен .Спасибо за ваш отчет.

Для обновления, пожалуйста, запустите:

pip install -U pyq-kernel
pyq -m pyq.kernel install

В будущем, пожалуйста, не стесняйтесь открывать проблему в PyQ-проекте репозитория для более быстрого ответа.

...