Opened 5 years ago

Last modified 5 years ago

#3350 accepted enhancement

Better information for bundle requirement problems

Reported by: goddard@… Owned by: Greg Couch
Priority: normal Milestone:
Component: Tool Shed Version:
Keywords: Cc: Conrad Huang
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Darwin-18.7.0-x86_64-i386-64bit
ChimeraX Version: 0.9 (2019-06-06)
Description
(Describe the actions that caused this problem to occur here)

Log:
UCSF ChimeraX version: 0.9 (2019-06-06)  
© 2016-2019 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> toolshed show ISOLDE

Traceback (most recent call last):  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/toolshed/info.py", line 627, in start_tool  
ti = api._api_caller.start_tool(api, session, self, tool_info)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/toolshed/__init__.py", line 1435, in start_tool  
return cls._get_func(api, "start_tool")(session, ti.name)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/isolde/__init__.py", line 31, in start_tool  
return tools.get_singleton(session, ISOLDE_ToolUI, 'ISOLDE', create=True)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/tools.py", line 214, in get_singleton  
tinst = tool_class(session, tool_name, **kw)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/isolde/tool.py", line 167, in __init__  
from . import isolde  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/isolde/isolde.py", line 35, in <module>  
from chimerax import clipper  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/clipper/__init__.py", line 26, in <module>  
__version__ = _version()  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/clipper/__init__.py", line 24, in _version  
return pkg_resources.require('ChimeraX-Clipper')[0].version  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/pkg_resources/__init__.py", line 900, in require  
needed = self.resolve(parse_requirements(requirements))  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/pkg_resources/__init__.py", line 791, in resolve  
raise VersionConflict(dist, req).with_context(dependent_req)  
pkg_resources.ContextualVersionConflict: (ChimeraX-Core 0.9
(/Applications/ChimeraX-0.9.app/Contents/lib/python3.7/site-packages),
Requirement.parse('ChimeraX-Core==0.93'), {'ChimeraX-Clipper'})  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/ui/gui.py", line 1137, in <lambda>  
run(ses, "toolshed show %s" % quote_if_necessary(tool_name)))  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/run.py", line 31, in run  
results = command.run(text, log=log)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/cli.py", line 2632, in run  
result = ci.function(session, **kw_args)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/commands/toolshed.py", line 337, in toolshed_show  
bi.start_tool(session, tool_name)  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/toolshed/info.py", line 633, in start_tool  
"start_tool() failed for tool %s in bundle %s:\n%s" % (tool_name, self.name,
str(e)))  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool ISOLDE in
bundle ChimeraX-ISOLDE:  
(ChimeraX-Core 0.9
(/Applications/ChimeraX-0.9.app/Contents/lib/python3.7/site-packages),
Requirement.parse('ChimeraX-Core==0.93'), {'ChimeraX-Clipper'})  
  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool ISOLDE in
bundle ChimeraX-ISOLDE:  
(ChimeraX-Core 0.9
(/Applications/ChimeraX-0.9.app/Contents/lib/python3.7/site-packages),
Requirement.parse('ChimeraX-Core==0.93'), {'ChimeraX-Clipper'})  
  
File
"/Applications/ChimeraX-0.9.app/Contents/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-
packages/chimerax/core/toolshed/info.py", line 633, in start_tool  
"start_tool() failed for tool %s in bundle %s:\n%s" % (tool_name, self.name,
str(e)))  
  
See log for complete Python traceback.  
  




OpenGL version: 4.1 ATI-2.11.21
OpenGL renderer: AMD Radeon Pro 560X OpenGL Engine
OpenGL vendor: ATI Technologies Inc.

Change History (3)

comment:1 by Tom Goddard, 5 years ago

Platform: all
Project: ChimeraX

If a bundle manages to get installed without required dependencies then starting it should give a user friendly error message like

"Tool YYY could not start because it requires ChimeraX-Core==0.93. You have ChimeraX-Core==0.9."

and log a traceback traceback, and it should show the Report a Bug button since it is a bug that this was possible. As it is now a user has no idea how to remedy the problem due to the lack of comprehensible error message.

comment:2 by Eric Pettersen, 5 years ago

Cc: Conrad Huang added
Component: UnassignedTool Shed
Owner: set to Greg Couch
Reporter: changed from chimerax-bug-report@… to goddard@…
Status: newassigned
Summary: ChimeraX bug report submissionBetter information for bundle requirement problems
Type: defectenhancement

comment:3 by Greg Couch, 5 years ago

Status: assignedaccepted

Python's pip code should be upgraded this summer to prevent incompatible versions of packages being installed. So this should become less of a problem in the future. But even when that happens, there's a chance that this situation will occur, so having a better error message is a good idea.

Note: See TracTickets for help on using tickets.