ppsp-team / HyPyP

The Hyperscanning Python Pipeline
BSD 3-Clause "New" or "Revised" License
73 stars 40 forks source link

HyPyP toolbox requirement of PyQt5 =5.15.2 version breaking the Mayavi & MNE-Python Setup #77

Closed shivak3 closed 2 years ago

shivak3 commented 2 years ago

Hi,

HyPyP toolbox Installation requirement of PyQt5 =5.15.2 version breaking the Mayavi, MNE-Python Setup and making entire conda environment inconsistent.

I am using MNE-Python and Mayavi with conda setup on RHEL 7 system.

I had PyQT 5.12.3 version when worked well without any issues until I install PyQt5=5.15.2 version.

(base) [root@RHEL7 ~] conda list | grep pyqt
pyqt                      5.9.2            py37h05f1152_2  
pyqt5                     5.12.3                   pypi_0    pypi
pyqt5-sip                 12.7.1                   pypi_0    pypi
pyqtwebengine             5.12.1                   pypi_0    pypi

As HyPyP has the requirement of PyQt5-Qt5 5.15.2 version. Then, I installed it using "pip".

[root@RHEL7 ~] pip install PyQt5==5.15.2

I tried to run mayavi after installing 5.15.2, Then I see error

(base) [root@RHEL7] mayavi2
/usr/bin/anaconda3/lib/python3.7/site-packages/traits/etsconfig/etsconfig.py:420: UserWarning: Environment variable "HOME" not set, setting home directory to /tmp
  % (environment_variable, parent_directory)
Exception occurred in traits notification handler.
Please check the log file for details.
Exception occurred in traits notification handler for object: <mayavi.plugins.mayavi_ui_plugin.MayaviUIPlugin object at 0x7fecdd61e830>, trait: application, old value: None, new value: <mayavi.plugins.mayavi_workbench_application.MayaviWorkbenchApplication object at 0x7fecdd61ee90>
Traceback (most recent call last):
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/trait_notifiers.py", line 654, in _dispatch_change_event
    self.dispatch(handler, *args)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/trait_notifiers.py", line 553, in dispatch
    handler(*args)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 498, in handle_simple
    self.next.register(new)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 464, in register
    value = getattr(self, type)(new, name, False)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 738, in _register_simple
    return next.register(getattr(object, name))
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/envisage/ui/workbench/workbench_application.py", line 140, in _gui_default
    return GUI(splash_screen=self.splash_screen)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/plugins/mayavi_workbench_application.py", line 121, in _splash_screen_default
    show_log_messages = True,
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/pyface/base_toolkit.py", line 178, in __init__
    raise NotImplementedError(msg % (toolkit, package, name))
NotImplementedError: the null pyface.ui.null backend doesn't implement splash_screen:SplashScreen
Exception occurred in traits notification handler for object: <mayavi.scripts.mayavi2.MayaviApp object at 0x7fed16921230>, trait: application, old value: None, new value: <mayavi.plugins.mayavi_workbench_application.MayaviWorkbenchApplication object at 0x7fecdd61ee90>
Traceback (most recent call last):
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/trait_notifiers.py", line 654, in _dispatch_change_event
    self.dispatch(handler, *args)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/trait_notifiers.py", line 553, in dispatch
    handler(*args)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 498, in handle_simple
    self.next.register(new)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 464, in register
    value = getattr(self, type)(new, name, False)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/traits/traits_listener.py", line 738, in _register_simple
    return next.register(getattr(object, name))
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/envisage/ui/workbench/workbench_application.py", line 140, in _gui_default
    return GUI(splash_screen=self.splash_screen)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/plugins/mayavi_workbench_application.py", line 121, in _splash_screen_default
    show_log_messages = True,
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/pyface/base_toolkit.py", line 178, in __init__
    raise NotImplementedError(msg % (toolkit, package, name))
NotImplementedError: the null pyface.ui.null backend doesn't implement splash_screen:SplashScreen
Traceback (most recent call last):
  File "/usr/bin/anaconda3/bin/mayavi2", line 11, in <module>
    load_entry_point('mayavi==4.7.1', 'gui_scripts', 'mayavi2')()
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/scripts/mayavi2.py", line 602, in main
    mayavi.main(sys.argv[1:])
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/plugins/app.py", line 195, in main
    app.run()
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/plugins/mayavi_workbench_application.py", line 73, in run
    gui = self.gui
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/envisage/ui/workbench/workbench_application.py", line 140, in _gui_default
    return GUI(splash_screen=self.splash_screen)
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/mayavi/plugins/mayavi_workbench_application.py", line 121, in _splash_screen_default
    show_log_messages = True,
  File "/usr/bin/anaconda3/lib/python3.7/site-packages/pyface/base_toolkit.py", line 178, in __init__
    raise NotImplementedError(msg % (toolkit, package, name))
NotImplementedError: the null pyface.ui.null backend doesn't implement splash_screen:SplashScreen

Did any one face this issue? Please help me to fix the problem. TIA.

ghazalehran commented 2 years ago

Dear @shivak3, Thank you for your feedback. HyPyP requires: pyqt5<6.0.0,>=5.15.0, which is compatible with the latest version of PyQt5, therefore, HyPyP's requirement is not the issue (you may run to the same error while using other packages requiring PyQt5). If you have problem working with mayavi with this version of PyQt5, I suggest to mention it to their team since they have mentioned it works with either PyQt4, PySide, PySide2, PyQt5 or wxPython. Consider this open issue that mentions a similar error to yours.