Difference between Bokeh on Linux and Window? Bokeh on Anaconda 2 and Bokeh Anaconda 3?

My Bokeh server is launched without problem on Window 10(Bokeh 1.0.4, Anaconda 3, Nodejs 11.11.0, and npm 6.7.0, Python 3.7.2) And it works like this photo.

But on Linux (Bokeh 1.0.4, Anaconda 2, Nodejs 11.11.0 and npm 6.4.0, Python 3.7.2), my Bokeh server didn’t work. I don’t know why. Maybe the problem comes from the version of Anaconda? The Widgets and the plots couldn’t be displayed.

One of the main core devs uses Linux almost exclusively, and almost all of our Continuous Integration testing (which includes full end-to-end Selenium tests to validate Bokeh server operation) is on Linux as well. It’s safe to say Linux is definitely the most well-tested platform by far. So I also feel confident that the issue is probably some local configuration or otherwise on your end. But it’s not possible to speculate at all, without information. At a minimum:

  • The console logs from the Bokeh server
  • The JavaScript console logs in your browser
  • The above logs, with debug logging options turned on

It seems to be difficult to understand. But There is a problem like with the for loop in my scripts , i added a time.sleep(0.2) for each loop. On Window, it works well. But on Linux, there is a delay too long for each loop

I can only repeat what I have said before: there is no way to speculate without information (logs) and/or a way to reproduce the issue (code to run).

Thanks so much, but I don’t really know how to find a solution @@.

@DuyNGUYEN I am asking for information so that we can try to help you find a solution. I am suggesting the information that you could provide, e.g. Bokeh server logs, or browser JS console logs. Are you saying you can’t provide these things? Or you need more guidance about them? The Bokeh server log is the output that shows up in the terminal wherever you start bokeh server. The browser JS logs differ by browser, e.g. on Safari you hit Apple-Option-C to access them. You will have to google search for instructions how to obtain them for whatever browsers you are using. Please just post that information here, and possibly it will point to a solution.

The bokeh server logs on Window and on Linux are the same, there isn’t the diffrence between them.

Well, that’s unfortunate. The next best thing is usually a minimal (toy) example script to reproduce the problem (e.g. with fake/synthesized data) if that is possible to produce. Is it possible for you to try with a new version to see what happens? There was a big refactor to layout in version 1.1 in case this is some layout related issue (there were many) perhaps it has been resolved in recent versions.

These are the Bokeh server log and the browser JS logs when i launched my app on Window. I think it works well. I don’t have my computer with Linux now, to show you the Bokeh server log when i launched my app. But i will try with Bokeh 1.1

As long as you are trying a newer version I would suggest using the latest (1.2)

Thanks, now it works. But there is a small problem. In my scripts, there is a for loops to display the different plots(20 plots)., and i added time.sleep(0.2) for each loop. it means with each loop, each plot will be displayed. It seems to be ok on Window. But on Linux, i think time.sleep(0.2) doesn’t work, it’s too fast, i just see the first and the last plot.

With more details:

In the first photo, in my plot, there is a cluster, and on the right, there are 4 sliders, i can use these 4 sliders to change my cluster into many forms. And i click on Show me, to see 20 different times, my
cluster is changed with the values on sliders. And you can see my code

On window its ok. But On linux when i click on show me, just 1 time my cluster is changed

OK I have to make sure: the screenshots above of the logs, are those from after the problem happens? To be clear, I was asking for the state of the logs after a problem occurs. I.e. the logs after you click the button and things on’t work. Typically when something works “once” it usually follows some kind of exception (which would show up in the logs).

I saw the logs. Nothing is changed before or after i click the button. I think there isn’t problème with time.sleep()
But i dont know why with a for loops 20 times, just only the last loop, my figure is displayed

Maybe i will try with curdoc().add_periodic_callback?

Unfortunately at at this point I don’t really have any other suggestions. If you can provide a complete, minimal, script that reproduces what you are seeing, I would be happy to investigate it further by actually running it myself. Otherwise I don’t have any more ideas present.