Ubuntu20.04下SageMath启动notebook报错:sagenb模块缺失如何解决?
修复Ubuntu 20.04中SageMath打开Notebook的ModuleNotFoundError问题
你遇到的这个报错是因为SageMath 9.0开始已经默认弃用了旧的sagenb模块,转而推荐使用Jupyter Notebook。下面给你两种解决思路:
你碰到的具体报错信息:
mks@MKS-H81M-S:~$ sage ┌────────────────────────────────────────────────────────────────────┐ │ SageMath version 9.0, Release Date: 2020-01-01 │ │ Using Python 3.8.5. Type "help()" for help. │ └────────────────────────────────────────────────────────────────────┘ sage: notebook() --------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) <ipython-input-1-b5959bb24428> in <module> ----> 1 notebook() /usr/lib/python3/dist-packages/sage/misc/lazy_import.pyx in sage.misc.lazy_import.LazyImport.__call__ (build/cythonized/sage/misc/lazy_import.c:3684)() 351 True 352 """ --> 353 return self.get_object()(*args, **kwds) 354 355 def __repr__(self): /usr/lib/python3/dist-packages/sage/misc/lazy_import.pyx in sage.misc.lazy_import.LazyImport.get_object (build/cythonized/sage/misc/lazy_import.c:2347)() 186 if likely(self._object is not None): 187 return self._object --> 188 return self._get_object() 189 190 cpdef _get_object(self): /usr/lib/python3/dist-packages/sage/misc/lazy_import.pyx in sage.misc.lazy_import.LazyImport._get_object (build/cythonized/sage/misc/lazy_import.c:2586)() 218 elif self._at_startup and not startup_guard: 219 print('Option ``at_startup=True`` for lazy import {0} not needed anymore'.format(self._name)) --> 220 self._object = getattr(__import__(self._module, {}, {}, [self._name]), self._name) 221 name = self._as_name 222 if self._deprecation is not None: ModuleNotFoundError: No module named 'sagenb' sage:
解决方法
方法一:使用官方推荐的Jupyter Notebook(强烈推荐)
SageMath 9.0之后官方就主推Jupyter了,功能比旧的sagenb更完善,操作也很简单:
- 在SageMath的交互界面里,输入
jupyter_notebook()代替原来的notebook(),回车就能启动Jupyter Notebook界面了。 - 或者直接退出Sage环境,在终端里执行
sage -n jupyter命令,也能直接打开Jupyter。
方法二:安装弃用的sagenb模块(不推荐)
如果你确实需要用旧的sagenb,可以通过Sage自带的pip安装:
- 方式一:在Sage交互环境里输入
!pip install sagenb(前面的感叹号是告诉Sage执行系统命令) - 方式二:退出Sage,在终端里运行
sage -pip install sagenb,这样会用Sage自带的pip安装,避免和系统的pip环境冲突。
⚠️ 注意:sagenb已经被官方标记为弃用,后续的SageMath版本会彻底移除这个模块,所以还是建议尽快切换到Jupyter Notebook哦。
内容的提问来源于stack exchange,提问作者MAC
相关产品推荐
相关产品推荐

