Installation details (original) (raw)
This section provides more detailed information about installing Bokeh. This includes details about Bokeh’s prerequisites as well as Bokeh’s required and optional dependencies.
Supported platforms#
Bokeh is officially supported (and continuously tested) on CPython versions 3.10 and later. It’s possible that Bokeh does work on other versions of Python, but no guarantees or support are provided.
Installing with conda
or pip
#
Bokeh can be installed using either the Python package installer pip
, orconda
, the package manager for the Anaconda Python Distribution.
Use this command to install Bokeh:
Make sure you have either Anaconda or Miniconda installed. Use this command to install Bokeh from the default channel:
Alternatively, if you want to make sure you always have the most recent version of Bokeh after each new release, install from theBokeh channel directly:
conda install -c bokeh bokeh
Checking your installation#
To verify whether the installation was successful, use this command:
You should see, among other things, a line with information on the installed version of Bokeh.
If you receive an error instead, try searching for more information by using the “bokeh” tag on Stack Overflow or asking a question in theBokeh Discourse community.
Tip
Once you have Bokeh installed, build your first visualization by following the first steps guides.
Check the user guide for a comprehensive overview of all the things you can do with Bokeh.
Installing for development#
If you want to install a development version of Bokeh to contribute to the project, please see the Setting up a development environment instructions in thecontributor guide.
Installing required dependencies#
For basic usage, Bokeh requires the following libraries:
- Jinja2 >=2.9
- contourpy >=1.2
- narwhals>=1.13
- numpy >=1.16
- packaging >=16.8
- pandas >=1.2
- pillow >=7.1.0
- PyYAML >=3.10
- tornado >=6.2; sys_platform != ‘emscripten’
- xyzservices >=2021.09.1
All those packages are automatically installed if you use conda
orpip
.
Installing optional dependencies#
In addition to the required dependencies, some additional packages are necessary for certain optional features:
Jupyter
Bokeh can display content in classic Jupyter notebooks as well as in JupyterLab. Depending on your setup, there may be additional packages or Jupyter extensions to install. See Jupyter for full details.
NodeJS
Necessary for Custom extensions or for definingCustomJS
implementations in TypeScript.
NetworkX
Necessary to use the from_networkx()
function to generate Bokeh graph renderers directly from NetworkX data.
psutil
Necessary to enable detailed memory logging in the Bokeh server.
Selenium, GeckoDriver, Firefox
Necessary for PNG and SVG export to PNG and SVG images.
Sphinx
Necessary to make use of the bokeh.sphinxext
Sphinx extension for including Bokeh plots in Sphinx documentation.
Installing sample data#
Optionally, Bokeh can download and install a collection of sample data. This includes a variety of freely available data tables and databases that you can use with Bokeh. Because this sample data is rather large, it is not included in Bokeh’s installation packages.
In Bokeh’s GitHub repository, you can find a number of examples. Those examples also use this sample data. See bokeh.sampledata for more information on the data sets included in Bokeh’s sample data.
After installing Bokeh, you can automatically download and install the sample data with this command:
pip install bokeh_sampledata
Installing standalone BokehJS#
BokehJS is Bokeh’s client-side runtime library. You can also use BokehJS as a standalone JavaScript library. To do so, download the code from Bokeh’s content delivery network (CDN) at cdn.bokeh.org
. The CDN uses the following naming scheme:
Javascript files
https://cdn.bokeh.org/bokeh/release/bokeh-x.y.z.min.js https://cdn.bokeh.org/bokeh/release/bokeh-widgets-x.y.z.min.js https://cdn.bokeh.org/bokeh/release/bokeh-tables-x.y.z.min.js https://cdn.bokeh.org/bokeh/release/bokeh-api-x.y.z.min.js https://cdn.bokeh.org/bokeh/release/bokeh-gl-x.y.z.min.js https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-x.y.z.min.js
Only the Bokeh core library bokeh-x.y.z.min.js
is always required. The other scripts are optional and only need to be included if you want to use corresponding features:
- The
"bokeh-widgets"
files are only necessary if you are using any of theBokeh widgets. - The
"bokeh-tables"
files are only necessary if you are using Bokeh’sdata tables. - The
"bokeh-api"
files are required to use theBokehJS API and must be loaded after the core BokehJS library. - The
"bokeh-gl"
files are required to enableWebGL support. - the
"bokeh-mathjax"
files are required to enableMathJax support.
Replace x.y.z
with the Bokeh version you want to use. For example, the links for version 3.0.0
are:
- https://cdn.bokeh.org/bokeh/release/bokeh-3.0.0.min.js
- https://cdn.bokeh.org/bokeh/release/bokeh-widgets-3.0.0.min.js
- https://cdn.bokeh.org/bokeh/release/bokeh-tables-3.0.0.min.js
- https://cdn.bokeh.org/bokeh/release/bokeh-api-3.0.0.min.js
- https://cdn.bokeh.org/bokeh/release/bokeh-gl-3.0.0.min.js
- https://cdn.bokeh.org/bokeh/release/bokeh-mathjax-3.0.0.min.js
Note
You should always set crossorigin="anonymous"
on script tags that load BokehJS from CDN.