I want to use the FileUpload
widget in jupyter lab.
I have the following lines of codes in my notebook cell :
uploader = widgets.FileUpload()
uploader
In jupyter notebook, the output of the cell is a clickable button that I can use to upload a file. In jupyter lab, the output is the following :
FileUpload(value={}, description='Upload')
Here's the info on the uploader
object :
Type: FileUpload
String form: FileUpload(value={}, description='Upload')
File: ~/miniconda3/envs/fastai2/lib/python3.7/site-packages/ipywidgets/widgets/widget_upload.py
Is it possible to make this widget work on jupyter lab? And if so how should I proceed ?
Simply install the python ipywidgets package with pip (pip install ipywidgets==7.6. 0) or conda/mamba (conda install -c conda-forge ipywidgets=7.6. 0) and ipywidgets will automatically work in classic Jupyter Notebook and in JupyterLab 3.0.
IPyWidgets is a Python library of HTML interactive widgets for Jupyter notebook.
For me it worked after
pip install jupyterlab-widgets
jupyter labextension install @jupyter-widgets/jupyterlab-manager
Also see
https://developer.aliyun.com/mirror/npm/package/@jupyter-widgets/jupyterlab-manager
Usage
from ipywidgets import FileUpload
from IPython.display import display
upload = FileUpload(accept='.txt', multiple=True)
display(upload)
with open('z_merged_output.txt', 'wb') as output_file:
for uploaded_filename in upload.value:
content = upload.value[uploaded_filename]['content']
output_file.write(content)
If you're using jupyterlab out the box, it doesn't have ipywidgets enabled by default, you need to rebuild it after enabling the extension. Follow the steps from here:
pip install ipywidgets
jupyter nbextension enable --py widgetsnbextension
jupyter labextension install @jupyter-widgets/jupyterlab-manager
It says that newer Jupyterlab has it enabled, but I still had troubles with it, depending on the platform. Manual install is usually the way to go.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With