Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No module named BobcatParser #41

Closed
alt-shreya opened this issue Aug 14, 2022 · 14 comments
Closed

No module named BobcatParser #41

alt-shreya opened this issue Aug 14, 2022 · 14 comments

Comments

@alt-shreya
Copy link

I'm trying to run the following code from your tutorials website, but I am unable to install BobcatParser. I am working in a Colab environment. Is there a dependency that I may be missing?

from lambeq import BobcatParser

parser = BobcatParser(root_cats=('NP', 'N'), verbose='text')

raw_train_diagrams = parser.sentences2diagrams(train_data, suppress_exceptions=True)
raw_val_diagrams = parser.sentences2diagrams(val_data, suppress_exceptions=True) 
@mspronesti
Copy link

mspronesti commented Aug 14, 2022

Hello,
the problem you see refers to the fact that !pip install lambeq on Google Colab installs lambeq 0.1.2, which is an old version. You can check this by running

!pip list | grep lambeq

In addition, Colab has python 3.7.13, while you need at least python 3.8

To install latest lambeq, update python first

!sudo apt-get update -y
!sudo apt-get install python3.9

Then change alternatives

#change alternatives
!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1
!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 2

and run

!sudo apt-get install python3.9-distutils && wget https://bootstrap.pypa.io/get-pip.py && python get-pip.py

Eventually, check you python version is 3.9.X

!python --version

If everything went smooth, install lambeq

!pip install lambeq==0.2.6

Anyway making things work on colab might be quite painful when you need packages requiring python 3.8 or above. If the above steps don't work for you, consider having a look here

@dimkart
Copy link
Contributor

dimkart commented Aug 15, 2022

Hi, as mentioned by @mspronesti, if you can't find Bobcat in lambeq it means you are using a version < 0.2.0. Please upgrade to the latest version.

@alt-shreya
Copy link
Author

@mspronesti Thank you for your prompt answer! Really appreciate it

I did update my python version, as per this discussion. I also tried your solution of updating the version of lambeq and I still get the same error:

ModuleNotFoundError: No module named 'lambeq'

Anyway making things work on colab might be quite painful when you need packages requiring python 3.8 or above. If the above steps don't work for you, consider having a look here

Maybe I should switch to using Jupyter notebook instead. The circuit visualisations don't appear in my native terminal or Visual Studio Code. Also, the link you posted here redirects me to my own question. Not sure if that was intentional, but a good example of unintented recursion xD

@mspronesti
Copy link

mspronesti commented Aug 15, 2022

@alt-shreya My bad, I forgot the URL in the parentheses. Just fixed it, hope it helps!

@alt-shreya
Copy link
Author

@mspronesti tried this fix, but I got this error:

ModuleNotFoundError: No module named 'pyngrok'

which other environments can I run this in?

@Thommy257
Copy link
Contributor

Hi @mspronesti,
There are some problems with google colab due to the preinstalled python version (3.7). It is not very straight forward to update the interpreter version of colab, therefore I suggest that host your own runtime (preferably using jupyter notebook), where you have full control over the python version.

@alt-shreya
Copy link
Author

@Thommy257 , I tried running this on Jupyter notebook as well. I get the same error and I am not sure how to proceed.

@Thommy257
Copy link
Contributor

Can you check the python version?

@Thommy257
Copy link
Contributor

lambeq>=0.2.0 requires python>=3.8

@alt-shreya
Copy link
Author

it's python 3.9 :(

@mspronesti
Copy link

mspronesti commented Aug 19, 2022

Hi @alt-shreya,
I think you skipped one or two steps, that's why it doesn't work for you. Please follow the steps below and let me know if it solves your problem.

Step 0

Create a new notebook (on your machine, not on Colab) and edit its metadata with your favorite editor, e.g. vim. You only need to locate the kernelspec cell, and update its entries like this

"kernelspec": {
  "display_name": "Python 3.9",
  "name": "py39",
}

Now save it and upload it to Colab.

Step 1

Copy the following code in the first cell of your notebook and run it

!wget -O mini.sh https://repo.anaconda.com/miniconda/Miniconda3-py39_4.9.2-Linux-x86_64.sh
!chmod +x mini.sh
!bash ./mini.sh -b -f -p /usr/local

!conda install -q -y jupyter
!conda install -q -y google-colab -c conda-forge
!python -m ipykernel install --name "py39" --user

now refresh your browser window (Ctrl + R).

Step 2

Without rerunning the first cell (actually you can even delete it now), run the following one

import sys
sys.version

If the output is

3.9.1 (default, Dec 11 2020, 14:32:07) \n[GCC 7.3.0]

then you successfully updated the kernel on Google Colab.

Step 3

Finally test lambeq works

!pip install lambeq

import lambeq
print(lambeq.__version__)
from lambeq import BobcatParser

parser = BobcatParser()
diagram = parser.sentence2diagram('This is a test sentence')
diagram.draw()

@alt-shreya
Copy link
Author

@mspronesti thank you for the clear walkthrough!
This soultion works and I was able to train a classical case using the tutorial!

@mspronesti
Copy link

mspronesti commented Aug 19, 2022

@alt-shreya Glad it worked! 😁 I guess this issue can be closed now.

@Thommy257
Copy link
Contributor

Thank you very much @mspronesti for the support!

Thommy257 pushed a commit to toumix/lambeq that referenced this issue Apr 26, 2023
Co-authored-by: Kin Ian Lo <keonlo123@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants