Bug 40796 - приложение outwiker неработоспособно в окружении sisyphus
Summary: приложение outwiker неработоспособно в окружении sisyphus
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: outwiker (show other bugs)
Version: unstable
Hardware: x86_64 Linux
: P5 normal
Assignee: Антон Мидюков
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2021-08-21 18:56 MSK by Gleb Kulikov
Modified: 2021-08-22 20:36 MSK (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Gleb Kulikov 2021-08-21 18:56:55 MSK
outwiker из репозитория, версия outwiker_3.0.0.888-alt1 (впрочем, если ставить из гитхаба, проблема сохраняется). 

После запуска программа падает с диагностикой:
...
File "/usr/share/outwiker/outwiker/core/system.py", line 199, in getSpellChecker
    return CyHunspellWrapper(langlist, folders)
  File "/usr/share/outwiker/outwiker/core/spellchecker/cyhunspellwrapper.py", line 49, in init
    checker = hunspell.Hunspell(
AttributeError: module 'hunspell' has no attribute 'Hunspell'
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed

ну и 
ERROR      2021-08-21 22:36:41,891   outwiker.core.pluginsloader - pluginsloader - *** Plug-in autorenamer.plugin loading error ***
autorenamer.plugin/
cannot import name 'AutoRenamer' from 'autorenamer.autorenamer' (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)
Traceback (most recent call last):
  File "/usr/share/outwiker/outwiker/core/pluginsloader.py", line 334, in __loadPlugin
    module = importlib.import_module(module)
  File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 855, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/share/outwiker/plugins/autorenamer/plugin.py", line 7, in <module>
    from .autorenamer import AutoRenamer
ImportError: cannot import name 'AutoRenamer' from 'autorenamer.autorenamer' (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)

ERROR      2021-08-21 22:36:41,892   outwiker.core.pluginsloader - pluginsloader - **********

ERROR      2021-08-21 22:36:43,651   outwiker.core.notestreeregistry - registrynotestree - Error reading a notes tree registry
WARNING    2021-08-21 22:36:43,652   outwiker.core.notestreeregistry - registrynotestree - Invalid notes tree registry version

Установлен python3-module-pyhunspell версии 0.5.4-alt1.x86_64

Очень прискорбно.
Comment 1 Антон Мидюков 2021-08-21 19:01:31 MSK
На p10 тоже сломан. Давно, значит, сломался.
Comment 2 Gleb Kulikov 2021-08-21 19:38:10 MSK
если очистить старую ~/.config/outwiker, программа запускается и работает. после перезапуска — падает.

ERROR      2021-08-21 23:21:05,503   outwiker.core.pluginsloader - pluginsloader - *** Plug-in autorenamer.plugin loading error ***
autorenamer.plugin/
cannot import name 'AutoRenamer' from 'autorenamer.autorenamer' (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)
Traceback (most recent call last):
  File "/usr/share/outwiker/outwiker/core/pluginsloader.py", line 334, in __loadPlugin
    module = importlib.import_module(module)
  File "/usr/lib64/python3.9/importlib/__init__.py", line 127, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
  File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 855, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/usr/share/outwiker/plugins/autorenamer/plugin.py", line 7, in <module>
    from .autorenamer import AutoRenamer
ImportError: cannot import name 'AutoRenamer' from 'autorenamer.autorenamer' (/usr/share/outwiker/plugins/autorenamer/autorenamer/__init__.py)

ERROR      2021-08-21 23:21:05,503   outwiker.core.pluginsloader - pluginsloader - **********

Traceback (most recent call last):
  File "/usr/share/outwiker/runoutwiker.py", line 67, in <module>
    starter.processGUI()
  File "/usr/share/outwiker/outwiker/core/starter.py", line 52, in processGUI
    self.openRecentWiki()
  File "/usr/share/outwiker/outwiker/core/starter.py", line 94, in __openRecentWiki
    openWiki(self._application.recentWiki[0])
  File "/usr/share/outwiker/outwiker/core/commands.py", line 230, in openWiki
    Application.wikiroot = result
  File "/usr/share/outwiker/outwiker/core/application.py", line 407, in wikiroot
    self.onWikiOpen(self.__wikiroot)
  File "/usr/share/outwiker/outwiker/core/event.py", line 54, in __call
    handler[0](*args, **kwargs)
  File "/usr/share/outwiker/outwiker/gui/tabscontroller.py", line 246, in onWikiOpen
    self.__loadTabs(root)
  File "/usr/share/outwiker/outwiker/gui/tabscontroller.py", line 222, in __loadTabs
    self._application.selectedPage = self._tabsCtrl.GetPage(selectedTab)
  File "/usr/share/outwiker/outwiker/core/application.py", line 476, in selectedPage
    self.__wikiroot.selectedPage = page
  File "/usr/share/outwiker/outwiker/core/tree.py", line 428, in selectedPage
    self.root.onPageSelect(self._selectedPage)
  File "/usr/share/outwiker/outwiker/core/event.py", line 54, in __call
    handler[0](*args, **kwargs)
  File "/usr/share/outwiker/outwiker/core/event.py", line 54, in call
    handler[0](*args, **kwargs)
  File "/usr/share/outwiker/outwiker/gui/currentpagepanel.py", line 102, in onPageSelect
    self.__updatePageView(page)
  File "/usr/share/outwiker/outwiker/gui/currentpagepanel.py", line 134, in __updatePageView
    self.__createPageView(page)
  File "/usr/share/outwiker/outwiker/gui/currentpagepanel.py", line 153, in __createPageView
    self.__createConcretePageView(page)
  File "/usr/share/outwiker/outwiker/gui/currentpagepanel.py", line 187, in __createConcretePageView
    pageView = factory.getPageView(self, self._application)
  File "/usr/share/outwiker/outwiker/pages/wiki/wikipage.py", line 85, in getPageView
    return WikiPageView(parent, application)
  File "/usr/share/outwiker/outwiker/pages/wiki/wikipageview.py", line 39, in __init
    super(WikiPageView, self).init(parent, application)
  File "/usr/share/outwiker/outwiker/pages/wiki/basewikipageview.py", line 24, in init
    super(BaseWikiPageView, self).init(parent, application)
  File "/usr/share/outwiker/outwiker/pages/html/basehtmlpanel.py", line 53, in init
    self._codeEditor = self.getTextEditor()(self.notebook)
  File "/usr/share/outwiker/outwiker/pages/wiki/wikieditor.py", line 17, in init
super().init(parent)
  File "/usr/share/outwiker/outwiker/gui/texteditor.py", line 71, in init
    self.setDefaultSettings()
  File "/usr/share/outwiker/outwiker/pages/wiki/wikieditor.py", line 84, in setDefaultSettings
    super(WikiEditor, self).setDefaultSettings()
  File "/usr/share/outwiker/outwiker/gui/texteditor.py", line 145, in setDefaultSettings
    self.getSpellChecker().skipWordsWithNumbers = self.config.spellSkipDigits.value
  File "/usr/share/outwiker/outwiker/gui/texteditor.py", line 265, in getSpellChecker
    spellChecker = SpellChecker(langlist, spellDirList)
  File "/usr/share/outwiker/outwiker/core/spellchecker/spellchecker.py", line 18, in init
    self._realChecker = getOS().getSpellChecker(langlist, folders)
  File "/usr/share/outwiker/outwiker/core/system.py", line 199, in getSpellChecker
    return CyHunspellWrapper(langlist, folders)
  File "/usr/share/outwiker/outwiker/core/spellchecker/cyhunspellwrapper.py", line 49, in init
    checker = hunspell.Hunspell(
AttributeError: module 'hunspell' has no attribute 'Hunspell'
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed
И да, если программа всё-таки запустилась, то при попытке создать страницу
Traceback (most recent call last):
  File "/usr/share/outwiker/outwiker/gui/pagepopupmenu.py", line 73, in onAddChild
    createChildPage(self.parent, self.popupPage)
  File "/usr/share/outwiker/outwiker/gui/pagedialog.py", line 93, in createChildPage
    createPageWithDialog(parentwnd, page)
  File "/usr/share/outwiker/outwiker/core/commands.py", line 73, in readOnlyWrap
    return func(*args, **kwargs)
  File "/usr/share/outwiker/outwiker/gui/pagedialog.py", line 45, in createPageWithDialog
    with CreatePageDialog(parentwnd, parentpage, Application) as dlg:
  File "/usr/share/outwiker/outwiker/gui/pagedialog.py", line 98, in __init
    super().init(parentWnd, None, parentPage, application)
  File "/usr/share/outwiker/outwiker/gui/basepagedialog.py", line 32, in init
    self._createPanels()
  File "/usr/share/outwiker/outwiker/gui/basepagedialog.py", line 130, in _createPanels
    self._generalPanel = GeneralPanel(parent)
  File "/usr/share/outwiker/outwiker/gui/pagedialogpanels/generalpanel.py", line 63, in init
    self.createGeneralControls()
  File "/usr/share/outwiker/outwiker/gui/pagedialogpanels/generalpanel.py", line 111, in __createGeneralControls
    self.iconsPopup = IconsListPopup(self)
  File "/usr/share/outwiker/outwiker/gui/pagedialogpanels/iconslistpopup.py", line 11, in __init
    super().init(parent)
  File "/usr/share/outwiker/outwiker/gui/controls/popupwindow.py", line 37, in init
    super().init(parent, flags=wx.PU_CONTAINS_CONTROLS)
AttributeError: module 'wx' has no attribute 'PU_CONTAINS_CONTROLS'

Установлен python3-module-wx-4.0.7-alt3.x86_64
Comment 3 Gleb Kulikov 2021-08-21 19:39:07 MSK
автору написал, настораживает также
23:24:49: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1013,STL containers,compatible with 2.6,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1014,STL containers,compatible with 2.6,compatible with 2.8).
wxPython language: LANGUAGE_RUSSIAN
Comment 4 Gleb Kulikov 2021-08-21 19:46:29 MSK
автор пишет,
"
wxPython = "==4.1.1"
Pillow = "==8.2.0"
cyhunspell = "==2.0.2"
idna = ">=2.10"
pyparsing = "==2.4.7"
psutil = "==5.8.0"
"
у нас
установлены
python3-module-Pillow-8.1.2
python3-module-pyhunspell-0.5.4
idna — это что?
python3-module-pyparsing-2.4.2
psutils-2.05-alt1

и главное, python3-module-wx-4.0.7-alt3.x86_64

староватые библиотеки?
Comment 5 Антон Мидюков 2021-08-21 21:37:49 MSK
Вроде, очевидно в чём дело:
>>> dir (hunspell)
['HunSpell', 'HunSpellError', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'add', 'add_dic', 'add_with_affix', 'analyze', 'generate', 'generate2', 'get_dic_encoding', 'remove', 'spell', 'stem', 'suggest']

Нужно HunSpell вместо Hunspell у hunspell запрашивать. Исправил и получил другую ошибку:
SystemError: <class 'HunSpell'> returned a result with an error set
Error in atexit._run_exitfuncs:
wx._core.wxAssertionError: C++ assertion "GetEventHandler() == this" failed at ../src/common/wincmn.cpp(477) in ~wxWindowBase(): any pushed event handlers must have been removed
Comment 6 Gleb Kulikov 2021-08-21 22:29:35 MSK
(Ответ для Антон Мидюков на комментарий #5)
> Вроде, очевидно в чём дело:

> Нужно HunSpell вместо Hunspell у hunspell запрашивать. Исправил и получил
> другую ошибку:

Боюсь, неочевидно. Это я увидел, исправление ничего не даёт. Похоже, версия wx?
Comment 7 Gleb Kulikov 2021-08-22 10:17:12 MSK
(Ответ для Антон Мидюков на комментарий #5)

Автор ещё пишет:

Но еще обратите внимание, что там используется библиотека cyhunspell - https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у становлена у вас (python3-module-pyhunspell-0.5.4).
Comment 8 Антон Мидюков 2021-08-22 15:26:36 MSK
(In reply to Gleb Kulikov from comment #7)
> (Ответ для Антон Мидюков на комментарий #5)
> 
> Автор ещё пишет:
> 
> Но еще обратите внимание, что там используется библиотека cyhunspell -
> https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у
> становлена у вас (python3-module-pyhunspell-0.5.4).

Да, дело в этом. Спасибо. Буду собирать cyhunspell.
Comment 9 Антон Мидюков 2021-08-22 20:17:38 MSK
(In reply to Антон Мидюков from comment #8)
> (In reply to Gleb Kulikov from comment #7)
> > (Ответ для Антон Мидюков на комментарий #5)
> > 
> > Автор ещё пишет:
> > 
> > Но еще обратите внимание, что там используется библиотека cyhunspell -
> > https://pypi.org/project/cyhunspell/. Это не pyhunspell, которая у
> > становлена у вас (python3-module-pyhunspell-0.5.4).
> 
> Да, дело в этом. Спасибо. Буду собирать cyhunspell.

Собрал. Работает. Ждём, пока соберётся:
#283585 AWAITING #4.2 sisyphus python3-module-CacheMan.git=2.1.0-alt1 del=python3-module-pyhunspell python3-module-cyhunspell.git=2.0.2-alt1 outwiker.git=3.0.0.888-alt2
Comment 10 Repository Robot 2021-08-22 20:36:59 MSK
outwiker-3.0.0.888-alt2 -> sisyphus:

 Sun Aug 22 2021 Anton Midyukov <antohami@altlinux> 3.0.0.888-alt2
 - Add Requires: python3-module-cyhunspell (ALT bug #40796)