Rick Vink
Rick Vink

Reputation: 333

ipykernel (Jupyter notebook/labs) cannot import name ''filefind" from traitlets.utils

I installed Jupyter notebook and labs on and EC2 instance and for some reason I get the following error:

ImportError: cannot import name 'filefind' from 'traitlets.utils' (/usr/lib/python3/dist-packages/traitlets/utils/init.py)

Jupyter opens fine in the browser but I can't seem to be able to work in an python notebook.

Upvotes: 9

Views: 23459

Answers (4)

Aleesha s j
Aleesha s j

Reputation: 131

I had the same issue on all env other than the base. Even installed the same version of traitlets, pygments and ipykernel as in base,it also failed. After a couple of searches, I removed traitlets using

sudo apt-get remove python3-traitlets
sudo apt-get remove --auto-remove python3-traitlets

Then I installed jupyter

conda install notebook ipykernel jupyterlab

This solved my issue on all environments

Upvotes: 1

luarzou
luarzou

Reputation: 306

I disencourage the solution of op. Downloading and overwriting python libraries is not the way of keeping your system stable and clean!

What I found out is that while installing Jupyter notebook it had found four significant errors which resulted from python3 packages that were not installed correctly within that installation itself.

ERROR: ipykernel 6.6.0 has requirement traitlets<6.0,>=5.1.0, but you'll have traitlets 4.3.3 which is incompatible. ERROR: jupyterlab-pygments 0.1.2 has requirement pygments<3,>=2.4.1, but you'll have pygments 2.3.1 which is incompatible. ERROR: nbconvert 6.3.0 has requirement pygments>=2.4.1, but you'll have pygments 2.3.1 which is incompatible. ERROR: nbconvert 6.3.0 has requirement traitlets>=5.0, but you'll have traitlets 4.3.3 which is incompatible.

The solution is to just patch the packages to the newest version with:

pip3 install traitlets==5.1.1

pip3 install pygments==2.4.1

This applies to all similar cases where outdated packages prevent you from your installation

Upvotes: 19

Rick Vink
Rick Vink

Reputation: 333

Dirty initial fix (not recommended):

Oke fixed it! It seems like the problem was that the "traitlets/utils/init.py" was empty. So I copy-pasted the code from GitHub and that worked.

https://github.com/ipython/traitlets/blob/main/traitlets/utils/__init__.py

I got this problem twice when I installed two different ec2 instances installing cuda and cudnn. So it might that this has something to do with the origins of this issue.

Proper fix:

The proper way to fix this problem is by upgrading/downgrading the library. Check the other answers to this post for guidance.

Upvotes: 5

steco
steco

Reputation: 1383

I faced the same issue. Downgrading the versions of traitlets and pygments alone, as suggested by @luarzou, didn't solved the problem for me. I also downgrade ipykernel and it works now:

pip install ipykernel==6.0

I opened an issue: https://github.com/ipython/ipykernel/issues/857

Edit: actually this error can happen when your venv has versions of ipykernel or its dependencies different than the env running jupyter. I suggest in that case to delete and recreate your venv, and verify that you don't install there packages that will break the communication/compatibility.

Upvotes: 3

Related Questions