PythonCharmers / jupyter-docker-stacks

Ready-to-run Docker images containing Jupyter applications
https://jupyter-docker-stacks.readthedocs.io
Other
0 stars 1 forks source link

Package review #1

Closed edschofield closed 1 year ago

edschofield commented 2 years ago

Here are the new Python packages and updates we need as of ~2022-10-27~ 2022-11-03:

These additional OS packages would be great too:

On the GPU cluster, also these:

robertlayton commented 2 years ago

Tensorflow would be worth getting as well - we still have it as a module, and questions about it come up from time to time. If it conflicts with anything, just drop it, but otherwise i think its worth adding

I think the tensorflow package by itself will be sufficient at this stage.

edschofield commented 1 year ago

Thanks for the updates, @maegul ! The new GPU image is working beautifully

Here's a record of what appears to be installed & working (according to my testing) and what's not:

Installed and working:

Missing or broken:

bokeh

This isn't installed by default. After a user runs pip install bokeh, it doesn't display plots in-line in JupyterLab notebooks by default. This might be fixed by including the command conda install bokeh jupyter_bokeh in the Docker build script.

However, as one workaround, plots show inline after a user pip install bokeh if you run

from bokeh.io import output_notebook
output_notebook()

to initialize Bokeh before plotting.

(As another, lamer workaround, it is possible to export Bokeh plots as HTML and view them in a separate browser tab.)

geoplot

This seems to work fine after a user runs pip install geoplot -- but the docs recommend conda install geoplot as being more likely to work.

bqplot

bqplot doesn't work after a local pip install bqplot. JS errors:

image

Clicking reveals:

image

Notes on Dash

On gpuhub.pythoncharmers.com with the latest image, Dash works within JupyterLab if you replace these lines with a simple Dash app:

app = dash.Dash(__name__)
...
app.run_server(debug=True)

with this instead:

from jupyter_dash import JupyterDash

JupyterDash.infer_jupyter_proxy_config()
app = JupyterDash(__name__)
...
app.run_server(mode='jupyterlab', port=8050)
edschofield commented 1 year ago

Closing for now ...