运行Jupyter Notebook报错AttributeError: time模块无'clock'属性
问题描述
本地安装Anaconda3,此前环境运行一直正常,推测故障在安装XGBoost后出现。最初尝试启动Notebook时出现与tornado版本相关的错误,将tornado卸载后通过pip重新安装,该错误随即消失,但执行jupyter notebook命令启动时出现如下报错:
Traceback (most recent call last): File "C:\Users\hp\anaconda3\lib\site-packages\IPython\utils\timing.py", line 27, in <module> import resource ModuleNotFoundError: No module named 'resource' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "C:\Users\hp\anaconda3\Scripts\jupyter-notebook-script.py", line 10, in <module> sys.exit(main()) File "C:\Users\hp\anaconda3\lib\site-packages\jupyter_core\application.py", line 264, in launch_instance return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs) File "C:\Users\hp\anaconda3\lib\site-packages\traitlets\config\application.py", line 845, in launch_instance app.initialize(argv) File "C:\Users\hp\anaconda3\lib\site-packages\traitlets\config\application.py", line 88, in inner return method(app, *args, **kwargs) File "C:\Users\hp\anaconda3\lib\site-packages\notebook\notebookapp.py", line 2151, in initialize self.init_webapp() File "C:\Users\hp\anaconda3\lib\site-packages\notebook\notebookapp.py", line 1759, in init_webapp self.web_app = NotebookWebApplication( File "C:\Users\hp\anaconda3\lib\site-packages\notebook\notebookapp.py", line 179, in __init__ settings = self.init_settings( File "C:\Users\hp\anaconda3\lib\site-packages\notebook\notebookapp.py", line 302, in init_settings nbextensions_path=jupyter_app.nbextensions_path, File "C:\Users\hp\anaconda3\lib\site-packages\notebook\notebookapp.py", line 1329, in nbextensions_path from IPython.paths import get_ipython_dir File "C:\Users\hp\anaconda3\lib\site-packages\IPython\__init__.py", line 49, in <module> from .terminal.embed import embed File "C:\Users\hp\anaconda3\lib\site-packages\IPython\terminal\embed.py", line 19, in <module> from IPython.terminal.ipapp import load_default_config File "C:\Users\hp\anaconda3\lib\site-packages\IPython\terminal\ipapp.py", line 30, in <module> from IPython.core.magics import ScriptMagics File "C:\Users\hp\anaconda3\lib\site-packages\IPython\core\magics\__init__.py", line 21, in <module> from .execution import ExecutionMagics File "C:\Users\hp\anaconda3\lib\site-packages\IPython\core\magics\execution.py", line 46, in <module> from IPython.utils.timing import clock, clock2 File "C:\Users\hp\anaconda3\lib\site-packages\IPython\utils\timing.py", line 64, in <module> clocku = clocks = clock = time.clock AttributeError: module 'time' has no attribute 'clock'
故障原因
两个报错本质都是依赖版本不兼容导致:
No module named 'resource':resource是Unix/Linux系统专属标准库模块,Windows系统原生不存在,旧版本IPython未做Windows平台兼容处理才会触发该导入错误。module 'time' has no attribute 'clock':Python 3.8及以上版本正式移除了time.clock()方法,当前环境中的IPython版本过旧,仅适配Python3.7及以下版本,才会调用已被删除的接口。
之前安装XGBoost、用pip重装tornado的操作打乱了Anaconda原本的依赖版本匹配关系,把IPython等jupyter核心依赖降级到了不兼容当前Python版本的旧版本,才触发上述错误。
解决步骤
- 打开Anaconda Prompt,先卸载版本混乱的相关依赖包,执行命令:
pip uninstall -y ipython jupyter notebook tornado jupyter_core traitlets - 用conda源重新安装适配当前环境的jupyter组件,自动匹配正确的依赖版本:
conda install -y jupyter notebook - 安装完成后重新执行
jupyter notebook命令即可正常启动。 - 如果上述操作完成后仍存在IPython相关报错,单独升级IPython到兼容版本即可:
pip install --upgrade ipython
注意:Anaconda环境下尽量避免用pip直接覆盖安装conda已经预装的核心依赖(如tornado、IPython、jupyter相关组件),容易出现版本冲突,这类核心包优先用conda进行安装、更新操作。
内容的提问来源于stack exchange,提问作者Muhinyia Wa Ndegwa
相关产品推荐
相关产品推荐

