ImportError:无法导入名称锁
Posted
技术标签:
【中文标题】ImportError:无法导入名称锁【英文标题】:ImportError: cannot import name locks 【发布时间】:2016-06-29 17:16:38 【问题描述】:我正在帮助在 Jupyter 中看到此散景错误的人:
from bokeh.plotting import figure, output_notebook, show
---------------------------------------------------------------------------
ImportError Traceback (most recent call last)
<ipython-input-1-fa374f2df119> in <module>()
----> 1 from bokeh.plotting import figure, output_notebook, show
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/plotting/__init__.py in <module>()
5 from ..models.layouts import Row, Column; Row, Column
6
----> 7 from ..io import curdoc; curdoc
8 from ..io import output_file; output_file
9 from ..io import output_notebook; output_notebook
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/io.py in <module>()
27
28 # Bokeh imports
---> 29 from .core.state import State
30 from .document import Document
31 from .embed import notebook_div, standalone_html_page_for_models, autoload_server
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/core/state.py in <module>()
44 from ..document import Document
45 from ..resources import Resources, _SessionCoordinates
---> 46 from ..client import DEFAULT_SESSION_ID
47
48 #-----------------------------------------------------------------------------
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/client/__init__.py in <module>()
4 from __future__ import absolute_import
5
----> 6 from .session import ClientSession, pull_session, push_session, show_session, DEFAULT_SESSION_ID
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/client/session.py in <module>()
8 log = logging.getLogger(__name__)
9
---> 10 from ._connection import ClientConnection
11
12 from bokeh.resources import ( DEFAULT_SERVER_WEBSOCKET_URL,
/resources/.virtualenv/python2/lib/python2.7/site-packages/bokeh/client/_connection.py in <module>()
9 log = logging.getLogger(__name__)
10
---> 11 from tornado import gen, locks
12 from tornado.httpclient import HTTPRequest
13 from tornado.ioloop import IOLoop
ImportError: cannot import name locks
奇怪的是,我无法使用相同版本的散景、相同版本的龙卷风等在我自己的 Jupyter 中重现错误。
以下是软件包版本:
bokeh (0.12.0)
tornado (4.3)
什么可能导致这个错误?
【问题讨论】:
【参考方案1】:tornado.locks
模块是在 Tornado 4.2 中添加的,所以我怀疑,尽管您的朋友认为他们正在运行最新的 Tornado,但实际上他们安装了旧的。
【讨论】:
这就是问题所在。我认为实际上 Tornado 有多个版本——系统上可能是 4.0.2,virtualenv 中可能是 4.3——并且导入了错误的版本。以上是关于ImportError:无法导入名称锁的主要内容,如果未能解决你的问题,请参考以下文章
Django 上的 MakeMigration 错误 - ImportError:无法从“django.db.models”导入名称“FieldDoesNotExist”
变压器:导入包时出错。 “ImportError:无法从 'torch.optim.lr_scheduler' 导入名称 'SAVE_STATE_WARNING'”