Opened 5 years ago

Closed 5 years ago

#3820 closed defect (fixed)

Shell broken on Windows in Python 3.8

Reported by: goddard@… Owned by: pett
Priority: normal Milestone:
Component: Platform Version:
Keywords: Cc:
Blocked By: Blocking:
Notify when closed: Platform: all
Project: ChimeraX

Description

The following bug report has been submitted:
Platform:        Windows-10-10.0.19041
ChimeraX Version: 1.2.dev202010100248 (2020-10-10 02:48:32 UTC)
Description
Shell is broken on Windows, but not on Mac.  I suspect a third party package update broke it.

Log:
UCSF ChimeraX version: 1.2.dev202010100248 (2020-10-10)  
© 2016-2020 Regents of the University of California. All rights reserved.  
How to cite UCSF ChimeraX  

> ui tool show Shell

Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 535, in get  
value = obj._trait_values[self.name]  
KeyError: 'iopub_socket'  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 535, in get  
value = obj._trait_values[self.name]  
KeyError: 'iopub_thread'  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 524, in start_tool  
ti = api._api_caller.start_tool(api, session, self, tool_info)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\toolshed\\__init__.py", line 1251, in start_tool  
return cls._get_func(api, "start_tool")(session, ti.name)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\shell\\__init__.py", line 21, in start_tool  
return ShellUI(session, tool_name)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\shell\tool.py", line 37, in __init__  
kernel_manager.start_kernel()  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\inprocess\manager.py", line 46, in start_kernel  
self.kernel = InProcessKernel(parent=self, session=self.session)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\inprocess\ipkernel.py", line 72, in __init__  
super(InProcessKernel, self).__init__(**traits)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\ipkernel.py", line 71, in __init__  
self.shell.displayhook.pub_socket = self.iopub_socket  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 575, in __get__  
return self.get(obj, cls)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 538, in get  
default = obj.trait_defaults(self.name)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 1577, in trait_defaults  
return self._get_trait_default_generator(names[0])(self)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 975, in __call__  
return self.func(*args, **kwargs)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\inprocess\ipkernel.py", line 67, in _default_iopub_socket  
return self.iopub_thread.background_socket  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 575, in __get__  
return self.get(obj, cls)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 538, in get  
default = obj.trait_defaults(self.name)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 1577, in trait_defaults  
return self._get_trait_default_generator(names[0])(self)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\traitlets\traitlets.py", line 975, in __call__  
return self.func(*args, **kwargs)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\inprocess\ipkernel.py", line 59, in _default_iopub_thread  
thread = IOPubThread(self._underlying_iopub_socket)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\iostream.py", line 71, in __init__  
self._setup_event_pipe()  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\ipykernel\iostream.py", line 90, in _setup_event_pipe  
self._event_puller = ZMQStream(pipe_in, self.io_loop)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\zmq\eventloop\zmqstream.py", line 127, in __init__  
self._init_io_state()  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\zmq\eventloop\zmqstream.py", line 552, in _init_io_state  
self.io_loop.add_handler(self.socket, self._handle_events, self.io_loop.READ)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\tornado\platform\asyncio.py", line 100, in add_handler  
self.asyncio_loop.add_reader(fd, self._handle_events, fd, IOLoop.READ)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\asyncio\events.py", line
501, in add_reader  
raise NotImplementedError  
NotImplementedError  
  
During handling of the above exception, another exception occurred:  
  
Traceback (most recent call last):  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\ui\gui.py", line 1501, in <lambda>  
run(ses, "ui tool show %s" % StringArg.unparse(tool_name)))  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\commands\run.py", line 36, in run  
results = command.run(text, log=log, return_json=return_json)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\commands\cli.py", line 2835, in run  
result = ci.function(session, **kw_args)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\ui\cmd.py", line 187, in ui_tool_show  
bi.start_tool(session, name)  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 529, in start_tool  
raise ToolshedError(  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool Shell in
bundle ChimeraX-Shell:  
  
  
chimerax.core.toolshed.ToolshedError: start_tool() failed for tool Shell in
bundle ChimeraX-Shell:  
  
  
File "C:\Program Files\ChimeraX-Oct-12-2020\bin\lib\site-
packages\chimerax\core\toolshed\info.py", line 529, in start_tool  
raise ToolshedError(  
  
See log for complete Python traceback.  
  




OpenGL version: 3.3.0 NVIDIA 398.35
OpenGL renderer: GeForce GTX 1070 with Max-Q Design/PCIe/SSE2
OpenGL vendor: NVIDIA Corporation
Manufacturer: Micro-Star International Co., Ltd.
Model: GS65 Stealth Thin 8RF
OS: Microsoft Windows 10 Pro (Build 19041)
Memory: 34,195,668,992
MaxProcessMemory: 137,438,953,344
CPU: 12 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz
OSLanguage: en-US
Locale: ('en_US', 'cp1252')
PyQt version: 5.15.1
Compiled Qt version: 5.15.1
Runtime Qt version: 5.15.1
Installed Packages:
    alabaster: 0.7.12
    appdirs: 1.4.4
    Babel: 2.8.0
    backcall: 0.2.0
    blockdiag: 2.0.1
    certifi: 2020.6.20
    cftime: 1.2.1
    chardet: 3.0.4
    ChimeraX-AddH: 2.1.1
    ChimeraX-AlignmentAlgorithms: 2.0
    ChimeraX-AlignmentHdrs: 3.2
    ChimeraX-AlignmentMatrices: 2.0
    ChimeraX-Alignments: 2.1
    ChimeraX-Arrays: 1.0
    ChimeraX-Atomic: 1.8.2
    ChimeraX-AtomicLibrary: 1.1
    ChimeraX-AtomSearch: 2.0
    ChimeraX-AtomSearchLibrary: 1.0
    ChimeraX-AxesPlanes: 2.0
    ChimeraX-BasicActions: 1.1
    ChimeraX-BILD: 1.0
    ChimeraX-BlastProtein: 1.1
    ChimeraX-BondRot: 2.0
    ChimeraX-BugReporter: 1.0
    ChimeraX-BuildStructure: 2.2
    ChimeraX-Bumps: 1.0
    ChimeraX-BundleBuilder: 1.0
    ChimeraX-ButtonPanel: 1.0
    ChimeraX-CageBuilder: 1.0
    ChimeraX-CellPack: 1.0
    ChimeraX-Centroids: 1.1
    ChimeraX-ChemGroup: 2.0
    ChimeraX-Clashes: 2.1
    ChimeraX-ColorActions: 1.0
    ChimeraX-ColorGlobe: 1.0
    ChimeraX-CommandLine: 1.1.3
    ChimeraX-ConnectStructure: 2.0
    ChimeraX-Contacts: 1.0
    ChimeraX-Core: 1.2.dev202010100248
    ChimeraX-CoreFormats: 1.0
    ChimeraX-coulombic: 1.0.1
    ChimeraX-Crosslinks: 1.0
    ChimeraX-Crystal: 1.0
    ChimeraX-DataFormats: 1.0
    ChimeraX-Dicom: 1.0
    ChimeraX-DistMonitor: 1.1
    ChimeraX-DistUI: 1.0
    ChimeraX-Dssp: 2.0
    ChimeraX-EMDB-SFF: 1.0
    ChimeraX-ExperimentalCommands: 1.0
    ChimeraX-FileHistory: 1.0
    ChimeraX-FunctionKey: 1.0
    ChimeraX-Geometry: 1.1
    ChimeraX-gltf: 1.0
    ChimeraX-Graphics: 1.0
    ChimeraX-Hbonds: 2.1
    ChimeraX-Help: 1.0
    ChimeraX-HKCage: 1.0
    ChimeraX-IHM: 1.0
    ChimeraX-ImageFormats: 1.1
    ChimeraX-IMOD: 1.0
    ChimeraX-IO: 1.0
    ChimeraX-Label: 1.0
    ChimeraX-ListInfo: 1.1
    ChimeraX-Log: 1.1.1
    ChimeraX-LookingGlass: 1.1
    ChimeraX-Map: 1.0.1
    ChimeraX-MapData: 2.0
    ChimeraX-MapEraser: 1.0
    ChimeraX-MapFilter: 2.0
    ChimeraX-MapFit: 2.0
    ChimeraX-MapSeries: 2.0
    ChimeraX-Markers: 1.0
    ChimeraX-Mask: 1.0
    ChimeraX-MatchMaker: 1.1
    ChimeraX-MDcrds: 2.1
    ChimeraX-MedicalToolbar: 1.0.1
    ChimeraX-Meeting: 1.0
    ChimeraX-MLP: 1.0
    ChimeraX-mmCIF: 2.2
    ChimeraX-MMTF: 2.0
    ChimeraX-Modeller: 1.0
    ChimeraX-ModelPanel: 1.0
    ChimeraX-ModelSeries: 1.0
    ChimeraX-Mol2: 2.0
    ChimeraX-Morph: 1.0
    ChimeraX-MouseModes: 1.0
    ChimeraX-Movie: 1.0
    ChimeraX-Neuron: 1.0
    ChimeraX-Nucleotides: 2.0
    ChimeraX-OpenCommand: 1.3
    ChimeraX-PDB: 2.2
    ChimeraX-PDBBio: 1.0
    ChimeraX-PDBLibrary: 1.0
    ChimeraX-PickBlobs: 1.0
    ChimeraX-Positions: 1.0
    ChimeraX-PresetMgr: 1.0
    ChimeraX-PubChem: 2.0.1
    ChimeraX-Read-Pbonds: 1.0
    ChimeraX-Registration: 1.1
    ChimeraX-RemoteControl: 1.0
    ChimeraX-ResidueFit: 1.0
    ChimeraX-RestServer: 1.1
    ChimeraX-RNALayout: 1.0
    ChimeraX-RotamerLibMgr: 2.0
    ChimeraX-RotamerLibsDunbrack: 2.0
    ChimeraX-RotamerLibsDynameomics: 2.0
    ChimeraX-RotamerLibsRichardson: 2.0
    ChimeraX-SaveCommand: 1.2
    ChimeraX-SchemeMgr: 1.0
    ChimeraX-SDF: 2.0
    ChimeraX-Segger: 1.0
    ChimeraX-Segment: 1.0
    ChimeraX-SeqView: 2.2.1
    ChimeraX-Shape: 1.0.1
    ChimeraX-Shell: 1.0
    ChimeraX-Shortcuts: 1.0
    ChimeraX-ShowAttr: 1.0
    ChimeraX-ShowSequences: 1.0
    ChimeraX-SideView: 1.0
    ChimeraX-Smiles: 2.0.1
    ChimeraX-SmoothLines: 1.0
    ChimeraX-SpaceNavigator: 1.0
    ChimeraX-StdCommands: 1.1
    ChimeraX-STL: 1.0
    ChimeraX-Storm: 1.0
    ChimeraX-Struts: 1.0
    ChimeraX-Surface: 1.0
    ChimeraX-SwapAA: 2.0
    ChimeraX-SwapRes: 2.0
    ChimeraX-TapeMeasure: 1.0
    ChimeraX-Test: 1.0
    ChimeraX-Toolbar: 1.0
    ChimeraX-ToolshedUtils: 1.0
    ChimeraX-Tug: 1.0
    ChimeraX-UI: 1.3.1
    ChimeraX-uniprot: 2.0
    ChimeraX-ViewDockX: 1.0
    ChimeraX-Vive: 1.1
    ChimeraX-VolumeMenu: 1.0
    ChimeraX-VTK: 1.0
    ChimeraX-WavefrontOBJ: 1.0
    ChimeraX-WebCam: 1.0
    ChimeraX-WebServices: 1.0
    ChimeraX-Zone: 1.0
    colorama: 0.4.3
    comtypes: 1.1.7
    cxservices: 1.0
    cycler: 0.10.0
    Cython: 0.29.21
    decorator: 4.4.2
    distlib: 0.3.1
    docutils: 0.16
    filelock: 3.0.12
    funcparserlib: 0.3.6
    grako: 3.16.5
    h5py: 2.10.0
    html2text: 2020.1.16
    idna: 2.10
    ihm: 0.17
    imagecodecs: 2020.5.30
    imagecodecs-lite: 2020.1.31
    imagesize: 1.2.0
    ipykernel: 5.3.4
    ipython: 7.18.1
    ipython-genutils: 0.2.0
    jedi: 0.17.2
    Jinja2: 2.11.2
    jupyter-client: 6.1.7
    jupyter-core: 4.6.3
    kiwisolver: 1.2.0
    line-profiler: 2.1.2
    lxml: 4.5.2
    MarkupSafe: 1.1.1
    matplotlib: 3.3.2
    msgpack: 1.0.0
    netCDF4: 1.5.4
    netifaces: 0.10.9
    networkx: 2.5
    numexpr: 2.7.1
    numpy: 1.19.2
    numpydoc: 1.1.0
    openvr: 1.14.1501
    packaging: 20.4
    parso: 0.7.1
    pickleshare: 0.7.5
    Pillow: 7.2.0
    pip: 20.2.3
    pkginfo: 1.5.0.1
    prompt-toolkit: 3.0.7
    psutil: 5.7.2
    pycollada: 0.7.1
    pydicom: 2.0.0
    Pygments: 2.7.1
    PyOpenGL: 3.1.5
    PyOpenGL-accelerate: 3.1.5
    pyparsing: 2.4.7
    PyQt5-commercial: 5.15.1
    PyQt5-sip: 12.8.1
    PyQtWebEngine-commercial: 5.15.1
    python-dateutil: 2.8.1
    pytz: 2020.1
    pywin32: 228
    pyzmq: 19.0.2
    qtconsole: 4.7.7
    QtPy: 1.9.0
    RandomWords: 0.3.0
    requests: 2.24.0
    scipy: 1.5.2
    setuptools: 50.3.0
    sfftk-rw: 0.6.6.dev0
    six: 1.15.0
    snowballstemmer: 2.0.0
    sortedcontainers: 2.2.2
    Sphinx: 3.2.1
    sphinxcontrib-applehelp: 1.0.2
    sphinxcontrib-blockdiag: 2.0.0
    sphinxcontrib-devhelp: 1.0.2
    sphinxcontrib-htmlhelp: 1.0.3
    sphinxcontrib-jsmath: 1.0.1
    sphinxcontrib-qthelp: 1.0.3
    sphinxcontrib-serializinghtml: 1.1.4
    suds-jurko: 0.6
    tables: 3.6.1
    tifffile: 2020.9.3
    tinyarray: 1.2.3
    tornado: 6.0.4
    traitlets: 5.0.4
    urllib3: 1.25.10
    wcwidth: 0.2.5
    webcolors: 1.11.1
    wheel: 0.34.2
    WMI: 1.5.1

Attachments (1)

tool.py (2.4 KB ) - added by pett 5 years ago.
Added by email2trac

Download all attachments as: .zip

Change History (7)

comment:1 by Tom Goddard, 5 years ago

Component: UnassignedPlatform
Owner: set to pett
Platform: all
Project: ChimeraX
Status: newassigned
Summary: ChimeraX bug report submissionShell broken on Windows in Python 3.8

Supposedly this ipykernel patch fixed the problem and our version has this fix, so it is unclear why we still get the error. Maybe we are not calling the ipykernel initialize() routine.

https://github.com/jupyter/qtconsole/pull/406

I think Eric wrote our ChimeraX shell so will assign to Eric.

comment:2 by pett, 5 years ago

Status: assignedaccepted

in reply to:  3 ; comment:3 by pett, 5 years ago

Added the code suggested in https://github.com/jupyter/qtconsole/issues/400.  Tom, could you replace shell/src/tool.py with the attached file, install it, and see if it fixes the issue?

--Eric

tool.py

by pett, 5 years ago

Attachment: tool.py added

Added by email2trac

in reply to:  5 comment:4 by goddard@…, 5 years ago

Didn't work.  Same error.  I reported it as #3821 in case there is some 
subtle difference in error message.

On 10/12/2020 4:12 PM, Eric Pettersen wrote:

in reply to:  6 ; comment:5 by goddard@…, 5 years ago

Oops!  Your tool.py does fix it.  Remarkably on my previous test where I 
said it did not work I copied a different tool.py that was in Downloads, 
completely wrong code and yet when I ran shell I got the same error.

comment:6 by pett, 5 years ago

Resolution: fixed
Status: acceptedclosed

You must have also not installed it! :-)

Anyway, the fix is committed and pushed.

Note: See TracTickets for help on using tickets.