Anaconda Navigator中Jupyter Notebook无法导入已安装的nglview求助
解决Anaconda GUI环境下Jupyter Notebook无法导入nglview的问题
问题背景
在Anaconda Navigator GUI的base(根)环境启动的Jupyter Notebook中,无法导入已安装的nglview,相关版本信息:
- Jupyter Notebook 6.4.12
- Anaconda Navigator 2.3.2
- Python 3.9
- nglview 3.0.3
- ipython 8.5.0
导入时触发如下错误:
--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) Cell In [1], line 5 3 import pandas as pd 4 import matplotlib.pyplot as plt ----> 5 import nglview as nv 7 # the next line is necessary to display plots in Jupyter 8 get_ipython().run_line_magic('matplotlib', 'inline') File ~\anaconda3\lib\site-packages\nglview\__init__.py:4 1 import warnings 3 # for doc ----> 4 from . import adaptor, datafiles, show, widget 5 from ._version import get_versions 6 from .adaptor import * File ~\anaconda3\lib\site-packages\nglview\show.py:13 3 from . import datafiles 4 from .adaptor import (ASEStructure, ASETrajectory, BiopythonStructure, 5 FileStructure, HTMDTrajectory, IODataStructure, 6 IOTBXStructure, MDAnalysisTrajectory, MDTrajTrajectory, (...)\n 11 RdkitStructure, 12 TextStructure) ---> 13 from .widget import NGLWidget 15 __all__ = [ 16 'demo', 17 'show_pdbid', (...)\n 40 'show_biopython', 41 ] 44 def show_pdbid(pdbid, **kwargs): File ~\anaconda3\lib\site-packages\nglview\widget.py:19 15 from traitlets import (Bool, CaselessStrEnum, Dict, Instance, Int, Integer, 16 List, Unicode, observe, validate) 17 import traitlets ---> 19 from . import color, interpolate 20 from .adaptor import Structure, Trajectory 21 from .component import ComponentViewer File ~\anaconda3\lib\site-packages\nglview\color.py:114 110 else: 111 raise ValueError(f"{obj} must be either list of list or string") --> 114 ColormakerRegistry = _ColormakerRegistry() File ~\anaconda3\lib\site-packages\nglview\base.py:10, in _singleton.<locals>.getinstance() 8 def getinstance(): 9 if cls not in instances: ---> 10 instances[cls] = cls() 11 return instances[cls] File ~\anaconda3\lib\site-packages\nglview\color.py:47, in _ColormakerRegistry.__init__(self, *args, **kwargs) 45 try: 46 get_ipython() # only display in notebook ---> 47 self._ipython_display_() 48 except NameError: 49 pass File ~\anaconda3\lib\site-packages\nglview\color.py:54, in _ColormakerRegistry._ipython_display_(self, **kwargs) 52 if self._ready: 53 return ---> 54 super()._ipython_display_(**kwargs) AttributeError: 'super' object has no attribute '_ipython_display_'
已尝试无效操作:
- 重启Anaconda Navigator
- 重启Jupyter服务器
- 在Notebook单元格执行
%conda install -c conda-forge nglview(提示已安装) - 关闭相关标签页
限制条件:
- 仅允许通过Anaconda Navigator GUI操作(面向无计算科学背景学生)
- 后台有无法中断的量子化学计算,不能重启电脑
解决方案(仅GUI操作)
方案1:降级nglview到兼容版本
- 打开Anaconda Navigator,切换到Home标签页,确认当前环境为base (root)
- 找到nglview,点击右侧的齿轮图标,选择Mark for specific version installation
- 在版本列表中选择2.7.7(该版本与Python 3.9、IPython 8.5.0兼容性更稳定)
- 点击页面底部的Apply按钮,等待安装完成
- 重启Jupyter Notebook,尝试导入nglview
方案2:创建独立新环境
- 打开Anaconda Navigator,切换到Environments标签页
- 点击页面底部的Create按钮,输入环境名称(如
nglview_env),选择Python版本为3.9 - 点击Create等待环境创建完成
- 在新环境的搜索框输入
nglview,勾选对应包,同时勾选jupyter notebook - 点击Apply安装所有选中的包
- 切换到Home标签页,在新环境下启动Jupyter Notebook,尝试导入nglview
方案3:更新ipywidgets到兼容版本
- 在Anaconda Navigator的Home标签页,base环境下找到ipywidgets
- 点击齿轮图标,选择Mark for update(或直接选择最新兼容版本)
- 点击Apply完成更新
- 重启Jupyter Notebook后测试导入
内容的提问来源于stack exchange,提问作者Anthony Nash
相关产品推荐
相关产品推荐

