Не импортируется модуль Figure из bokeh


Выполняю шаги по документации библиотеки BAC0, хочу запустить GUI, в документации (https://bac0.readthedocs.io/en/latest/connect.html) указано установить набор дополнительных библиотек, в т.ч. bokeh. При запуске кода:

import BAC0

bacnet = BAC0.connect( ip='192.168.33.13/21' )
BAC0.version
bacnet.discoveredDevices
bacnet.whois(global_broadcast=True)

print(bacnet.devices) 

вылетает ошибка:

Import Error, refer to documentation or reinstall using 
    $ "pip install BAC0"
 cannot import name 'Figure' from 'bokeh.plotting' (C:\Users\username\Documents\bacnet-1\venv\Lib\site-packages\bokeh\plotting\__init__.py)

Discard this message if you are actually installing BAC0.
================================================================================
Traceback (most recent call last):
  File "c:\Users\username\Documents\bacnet-1\main.py", line 3, in <module>
    bacnet = BAC0.connect( ip='192.168.33.13/21' )
             ^^^^^^^^^^^^
AttributeError: module 'BAC0' has no attribute 'connect'

пробовал ставить bokeh версии ниже, переустанавливать BAC0, bokeh результат тот же. вот список библиотек виртуального окружения для python 3.12.3(windows10, x64):

BAC0==23.7.3
bacpypes==0.18.7
blinker==1.8.2
bokeh==3.4.1
click==8.1.7
colorama==0.4.6
contourpy==1.2.1
dominate==2.9.1
Flask==3.0.3
Flask-Bootstrap==3.3.7.1
itsdangerous==2.2.0
Jinja2==3.1.4
MarkupSafe==2.1.5
numpy==1.26.4
packaging==24.0
pandas==2.2.2
pillow==10.3.0
pyasyncore==1.0.4
python-dateutil==2.9.0.post0
pytz==2024.1
PyYAML==6.0.1
six==1.16.0
tornado==6.4
tzdata==2024.1
visitor==0.1.3
Werkzeug==3.0.3
xyzservices==2024.4.0


Ответы (1 шт):

Автор решения: Unicron

Нашел решение:
Необходимо установить библиотеку bokeh версии 2.4.2 (pip install bokeh==2.4.2) или ниже и сервер запускается:

2024-06-04 22:26:18,575 - INFO    | Starting BAC0 version 23.07.03 (Complete)
2024-06-04 22:26:18,575 - INFO    | Use BAC0.log_level to adjust verbosity of the app.
2024-06-04 22:26:18,575 - INFO    | Ex. BAC0.log_level('silence') or BAC0.log_level('error')
2024-06-04 22:26:18,575 - INFO    | Starting TaskManager
2024-06-04 22:26:18,594 - INFO    | Using ip : 192.168.31.115 on port 47808 | broadcast : 192.168.31.255
2024-06-04 22:26:18,670 - INFO    | Starting app...
2024-06-04 22:26:18,670 - INFO    | BAC0 started
2024-06-04 22:26:18,670 - INFO    | Registered as Simple BACnet/IP App
2024-06-04 22:26:18,671 - INFO    | Device instance (id) : 3056648
2024-06-04 22:26:18,704 - INFO    | Update Local COV Task started (required to support COV)
C:\Users\akama\Downloads\bacnet-1\venv\lib\site-packages\BAC0\web\BokehRenderer.py:163: FutureWarning: DataFrame.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
  df.fillna(method="ffill")
2024-06-04 22:26:19,915 - INFO    | Server started : http://192.168.31.115:8111
 * Serving Flask app 'BAC0.web.FlaskServer'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:8111
 * Running on http://192.168.31.115:8111
Press CTRL+C to quit
2024-06-04 22:26:23,953 - INFO    | Found those networks : set()
2024-06-04 22:26:23,953 - INFO    | No BACnet network found, attempting a simple whois using provided device instances limits (0 - 4194303)

P.S. правда теперь мне непонятно как поднять BACnet сеть, но это уже в другое

→ Ссылка