Ошибка при запуске сервера bokeh: "OSError: [Errno 98] Address already in use". Пример из мануала
Это пример из туториола по Bokeh.
from tornado.ioloop import IOLoop
from bokeh.application.handlers import FunctionHandler
from bokeh.application import Application
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
from bokeh.server.server import Server
def modify_doc(doc):
x_values = range(10)
y_values = [x ** 2 for x in x_values]
data_source = ColumnDataSource(data=dict(x=x_values, y=y_values))
plot = figure(title="f(x) = x^2",
tools="crosshair,pan,reset,save,wheel_zoom",)
plot.line('x', 'y', source=data_source, line_width=3, line_alpha=0.6)
doc.add_root(plot)
doc.title = "Test Plot"
def main():
print("Preparing a bokeh application.")
io_loop = IOLoop.current()
bokeh_app = Application(FunctionHandler(modify_doc))
server = Server({"/": bokeh_app}, io_loop=io_loop)
server.start()
print("Opening Bokeh application on http://localhost:5006/")
io_loop.add_callback(server.show, "/")
io_loop.start()
main()
При запуске скрипт выдает:
2020-03-24 20:32:48,249 Starting Bokeh server version 2.0.0 (running on Tornado 6.0.4)
2020-03-24 20:32:48,249 User authentication hooks NOT provided (default user enabled)
2020-03-24 20:32:48,251 Bokeh app running at: http://localhost:5006/grbr
2020-03-24 20:32:48,251 Starting Bokeh server with process id: 6345
Preparing a bokeh application.
2020-03-24 20:32:48,418 Starting Bokeh server version 2.0.0 (running on Tornado 6.0.4)
2020-03-24 20:32:48,419 Error running application handler <bokeh.application.handlers.script.ScriptHandler object at 0x7f4adf515390>: [Errno 98] Address already in use
File "netutil.py", line 174, in bind_sockets:
sock.bind(sockaddr) Traceback (most recent call last):
File "/usr/local/lib/python3.7/dist-packages/bokeh/application/handlers/code_runner.py", line 196, in run
exec(self._code, module.__dict__)
File "/home/gluk/my_bin/bin_trash/grbr.py", line 50, in <module>
main()
File "/home/gluk/my_bin/bin_trash/grbr.py", line 42, in main
server = Server({"/": bokeh_app}, io_loop=io_loop)
File "/usr/local/lib/python3.7/dist-packages/bokeh/server/server.py", line 390, in __init__
sockets, self._port = bind_sockets(self.address, self.port)
File "/usr/local/lib/python3.7/dist-packages/bokeh/server/util.py", line 60, in bind_sockets
ss = netutil.bind_sockets(port=port or 0, address=address)
File "/usr/local/lib/python3.7/dist-packages/tornado/netutil.py", line 174, in bind_sockets
sock.bind(sockaddr)
OSError: [Errno 98] Address already in use
2020-03-24 20:32:48,615 404 GET /favicon.ico (::1) 0.47ms
2020-03-24 20:32:48,643 WebSocket connection opened
2020-03-24 20:32:48,643 ServerConnection created
2020-03-24 20:33:01,625 WebSocket connection closed: code=1001, reason=None
Не могу понять причину данной ошибки. И второй вопрос: в мануале написано, что скрипт может запускаться
$ python grbr.py
но запускается он только:
bokeh serve --show grbr.py