Python 3.4.3 ipywidgets взаимодействует результаты в "ядре" KeyError и traitlets.traitlets.TraitError

Когда я запускаю код ниже, я всегда получаю две ошибки.

import cv2
from ipywidgets import interact

def thrImage(thr=254):
    _,imgOut = cv2.threshold(img,thr,255,cv2.THRESH_BINARY)
    cv2.imshow("tresholdImage",imgOut)

img = cv2.imread("../../bspBilder/001.jpg")
hist = cv2.calcHist([img],[0],None,[256],[0,256])

cv2.imshow("image",img)
_ = cv2.waitKey(0)
# up until here, everything works as expected

interact(thrImage,thr=(0,255,1))
_ = cv2.waitKey(0)

cv2.destroyAllWindows()

Как уже упоминалось в комментарии, после закрытия обычного изображения я получаю следующие следы:

Traceback (most recent call last):
  File "F:\OneDrive\Software\Python\lib\site-packages\traitlets\traitlets.py", line 432, in __get__
    value = obj._trait_values[self.name]
KeyError: 'kernel'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "F:\OneDrive\!!Workspaces!!\Python\!!Projects!!\Learning\Bildverarbeitung\Schwellwert\schwellwert.py", line 68, in <module>
    interact(thrImage,thr=(0,255,1))
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\interaction.py", line 318, in interact
    w = interactive(f, **kwargs)
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\interaction.py", line 184, in interactive
    container = Box(_dom_classes=['widget-interact'])
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\widget_box.py", line 41, in __init__
    super(Box, self).__init__(**kwargs)
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\widget.py", line 505, in __init__
    super(DOMWidget, self).__init__(*pargs, **kwargs)
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\widget.py", line 175, in __init__
    self.open()
  File "F:\OneDrive\Software\Python\lib\site-packages\ipywidgets\widgets\widget.py", line 192, in open
    self.comm = Comm(**args)
  File "F:\OneDrive\Software\Python\lib\site-packages\ipykernel\comm\comm.py", line 63, in __init__
    self.open(data)
  File "F:\OneDrive\Software\Python\lib\site-packages\ipykernel\comm\comm.py", line 94, in open
    comm_manager = getattr(self.kernel, 'comm_manager', None)
  File "F:\OneDrive\Software\Python\lib\site-packages\traitlets\traitlets.py", line 439, in __get__
    value = self._validate(obj, dynamic_default())
  File "F:\OneDrive\Software\Python\lib\site-packages\traitlets\traitlets.py", line 471, in _validate
    value = self.validate(obj, value)
  File "F:\OneDrive\Software\Python\lib\site-packages\traitlets\traitlets.py", line 1045, in validate
    self.error(obj, value)
  File "F:\OneDrive\Software\Python\lib\site-packages\traitlets\traitlets.py", line 899, in error
    raise TraitError(e)
traitlets.traitlets.TraitError: The 'kernel' trait of a Comm instance must be a Kernel, but a value of class 'NoneType' (i.e. None) was specified.

Поскольку я нуб-питон и не понимаю значения этих строк, я погуглил после двух ошибок. Я наткнулся на предложение обновить соответствующие модули, и я так и сделал, но это тоже не помогло.

C:\Users\Phi>python --version
Python 3.4.3

C:\Users\Phi>pip install --upgrade --ignore-installed ipython
Collecting ipython
  Downloading ipython-4.0.1-py3-none-any.whl (730kB)
    100% |################################| 733kB 39kB/s
Collecting decorator (from ipython)
  Using cached decorator-4.0.4-py2.py3-none-any.whl
Collecting pickleshare (from ipython)
Collecting simplegeneric>0.8 (from ipython)
Collecting traitlets (from ipython)
  Using cached traitlets-4.0.0-py2.py3-none-any.whl
Collecting path.py (from pickleshare->ipython)
  Using cached path.py-8.1.2-py2.py3-none-any.whl
Collecting ipython-genutils (from traitlets->ipython)
  Using cached ipython_genutils-0.1.0-py2.py3-none-any.whl
Installing collected packages: decorator, path.py, pickleshare, simplegeneric, ipython-genutils, traitlets, ipython
Successfully installed decorator-4.0.4 ipython-4.0.0 ipython-genutils-0.1.0 path.py-8.1.2 pickleshare-0.5 simplegeneric-0.8.1 traitlets-4.0.0

Я все еще получаю две ошибки выше.

1 ответ

Решение

В случае, если у кого-то возникнет та же проблема, и он найдет ответ, вот мое решение:

Не было никаких проблем с модулями, но отсутствовало окно для интерактивной панели. Самый простой способ решить эту проблему - просто выполнить код в блокноте Jupyter. В котором интерактивная панель генерировалась автоматически по мере необходимости.

Другие вопросы по тегам