Search code examples
pythonexecutablecx-freezebokeh

Frozen Bokeh application too large


I have created a Bokeh application based largely on this recipe:

http://docs.bokeh.org/en/latest/docs/gallery/unemployment.html

This works great but I need to to be able to distribute this application to my team, most of whom don't have python, let alone bokeh installed.

I tried building this into an executable using cx_freeze but the result may as well be my entire python distribution as its 360+ MB! That's without me looking further into some missing zip files etc which I probably need to add to my setup.py file. Note that my setup.py is very minimalist. This is basically a copy and paste job from http://cx-freeze.readthedocs.org/en/latest/distutils.html

Anyway, it's far too large. Do any of you have any suggestions as to how I can shrink this? Or perhaps, are there any alternative utilities that I can use to get a similar result without as many dependencies? A quick glance in the build directory shows dependencies like QT, scipy and numpy and tcl.

Basically I am looking to create a map of ram usage for an embedded system. My current output looks like this: Note that extra information about the addresses are accessible by hovering over the address in question. The result is also dynamically movable. Bokeh really shines here!

ram usage

Cheers!


Solution

  • Bokeh (as of 0.8.2) currently ships the server together with the main library. As a result there may be dependencies pulled in that you do not need. There are plans to split off the server in the near future, so that these dependencies can be managed separately. In the mean time, you can remove things like scipy and redis if you are not using them. I don't know about the Qt package showing up; Bokeh does not use Qt (or Tcl) in any capacity.