Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#6984 closed defect (fixed)

save_command bundle fails to initialize when no Qt available

Reported by: Greg Couch Owned by: pett
Priority: high Milestone:
Component: Input/Output Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

I was testing the CentOS 9 singularity build and ChimeraX gives tracebacks on startup due to Qt not being available/loadable. I believe this is because the base OS is CentOS 7. Ideally, there wouldn't any Qt stuff imported in nogui mode, if only to speed up startup.

Singularity> ChimeraX.app/bin/ChimeraX --nogui
Traceback (most recent call last):
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 490, in get_module
    m = importlib.import_module(self.package_name)
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/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 850, in exec_module
  File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/save_command/__init__.py", line 101, in <module>
    from .options import SaveModelOptionWidget
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/save_command/options.py", line 14, in <module>
    from Qt.QtWidgets import QFrame, QHBoxLayout, QLabel
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/Qt/__init__.py", line 64, in <module>
    from PyQt6.QtCore import PYQT_VERSION_STR as PYQT6_VERSION
ImportError: libQt6Core.so.6: cannot open shared object file: No such file or directory

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 375, in init_manager
    api = self._get_api(session.logger)
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 509, in _get_api
    m = self.get_module()
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 492, in get_module
    raise ToolshedError("Error importing bundle %s's module: %s" % (self.name, str(e)))
chimerax.core.toolshed.ToolshedError: Error importing bundle ChimeraX-SaveCommand's module: libQt6Core.so.6: cannot open shared object file: No such file or directory

Traceback (most recent call last):
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/info.py", line 365, in initialize
    api._api_caller.initialize(api, session, self)
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/core/toolshed/__init__.py", line 1278, in initialize
    return cls._get_func(api, "initialize")(session, bi)
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/bug_reporter/__init__.py", line 29, in initialize
    crash_report.register_signal_handler(session)
  File "/tmp/gregc-chimerax/ChimeraX.app/lib/python3.9/site-packages/chimerax/bug_reporter/crash_report.py", line 73, in register_signal_handler
    session.ui.set_fatal_error_log_file(_fault_handler_file)
AttributeError: 'UI' object has no attribute 'set_fatal_error_log_file'

Bundle 'ChimeraX-SaveCommand' custom initialization failed
Bundle 'ChimeraX-BugReporter' custom initialization failed
UCSF ChimeraX version: 1.5.dev202205281901 (2022-05-28)
© 2016-2022 Regents of the University of California.  All rights reserved.
cmd> 

Change History (4)

comment:1 by pett, 3 years ago

Priority: criticalhigh
Status: assignedaccepted

comment:2 by pett, 3 years ago

Resolution: fixed
Status: acceptedclosed

comment:3 by pett, 3 years ago

Component: UnassignedInput/Output

comment:4 by Tom Goddard, 3 years ago

I updated Segger to import SaveModelOptionWidget from save_command.widgets to complete the fix that Eric did.

Note: See TracTickets for help on using tickets.