Python Bokeh версии 0.13.0 Ошибка импорта RangeTool
import numpy as np
from bokeh.io import show
from bokeh.layouts import column
from bokeh.models import ColumnDataSource, RangeTool
from bokeh.plotting import figure
from bokeh.sampledata.stocks import AAPL
dates = np.array(AAPL['date'], dtype=np.datetime64)
source = ColumnDataSource(data=dict(date=dates, close=AAPL['adj_close']))
p = figure(plot_height=300, plot_width=800, tools="", toolbar_location=None,
x_axis_type="datetime", x_range=(dates[1500], dates[2500]))
p.line('date', 'close', source=source)
p.yaxis.axis_label = 'Price'
select = figure(plot_height=150, plot_width=800, y_range=p.y_range,
x_axis_type="datetime", y_axis_type=None,
tools="", toolbar_location=None)
range_rool = RangeTool(x_range=p.x_range)
range_rool.overlay.fill_color = "navy"
range_rool.overlay.fill_alpha = 0.2
select.line('date', 'close', source=source)
select.ygrid.grid_line_color = None
select.add_tools(range_rool)
select.toolbar.active_multi = range_rool
show(column(p, select))
Использование Python 3.6, Bokeh 0.13.0, Juptyer 5.5.0
Попытка выполнения этого кода, однако он выдает "ImportError: невозможно импортировать имя RangeTool"
Как я могу устранить эту ошибку?
1 ответ
Если вы не можете импортировать RangeTool
тогда у вас 100% есть какая-то проблема с установкой. Обычной вещью является установка Bokeh 0.13.0 в другой среде Python, отличной от той, в которой вы в данный момент запускаете Python (возможно, случайно). Это особенно распространено в сочетании с ноутбуком. Я видел очень многих людей, устанавливающих Bokeh в другой среде, отличной от ноутбука, поэтому, когда они запускают ноутбук, он, конечно, видит какую-то другую, более старую версию Bokeh. Вы всегда можете выполнить
print(bokeh.__version__)
чтобы подтвердить, что вы на самом деле используете ту версию, которую, по вашему мнению, используете. В противном случае, если это сообщает 0.13.0
тогда установка была как-то провалена. Сдуйте все, что связано с Боке site-packages
и переустановить.