ModuleNotFoundError: No module named 'nltk'

error:
ModuleNotFoundError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs (if you’re on Streamlit Cloud, click on ‘Manage app’ in the lower right of your app).

Traceback:

File "/home/adminuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
    exec(code, module.__dict__)File "/mount/src/mcq_generator/app.py", line 2, in <module>
    import nltk

I got this error. I have downloaded nltk and i have it in my requiements.txt file

link to app: https://automated-mcq-generator.streamlit.app/
link to github: GitHub - VictorUmunna/MCQ_Generator: Generate Multiple Choice QUestions using NLP

python 3.11, streamlit==1.27.2

ps: i do not use a visual environment

First, cleanup your requirements.txt file, it contains lots of unnecessary and not-installable packages (e.g. windows only packages) for streamlit cloud.

Hi @Victor_Umunna

I agree with @Franky1 that the requirements.txt file contains a long list of libraries where some are not installable. I’d also recommend to try out a minimal app where you can validate that nltk can be installed, then work your way up to the full packaged version.

Hope this helps

I have been able to sort out the requirements.txt file but i got the same error

Hi @dataprofessor
I have been able to sort out the requirements.txt file but i got the same error

Is this the pke you are trying to install?

yes it is

Then look carefully at the installation instructions, the package is not available in Pypi.

Please i do not understand

The package pke ist not in the pypi repository, therefore you cannot install it with pke==2.0.0


Try this one:

requirements.txt

streamlit==1.28.0
flashtext==2.7
pywsd==1.2.5
git+https://github.com/boudinfl/pke.git

Thank you @Franky1 . Unfortunately, it did not work. I created a venv for this but i still get the same error

I forked you application at 03f506a and deployed without issues. You may need to reboot or redeploy the application after changes to requirements.txt.

Thank you, @Goyo . It worked but i got a new error

OSError: This app has encountered an error. The original error message is redacted to prevent data leaks. Full error details have been recorded in the logs (if you're on Streamlit Cloud, click on 'Manage app' in the lower right of your app).
Traceback:
File "/home/adminuser/venv/lib/python3.9/site-packages/streamlit/runtime/scriptrunner/script_runner.py", line 534, in _run_script
    exec(code, module.__dict__)
File "/mount/src/mcq_generator/app.py", line 4, in <module>
    spacy.load('en')
File "/home/adminuser/venv/lib/python3.9/site-packages/spacy/__init__.py", line 54, in load
    return util.load_model(
File "/home/adminuser/venv/lib/python3.9/site-packages/spacy/util.py", line 438, in load_model
    raise IOError(Errors.E941.format(name=name, full=OLD_MODEL_SHORTCUTS[name])) 
OSError: [E941] Can't find model 'en'. It looks like you're trying to load a model from a shortcut, which is obsolete as of spaCy v3.0. To load the model, use its full name instead:
nlp = spacy.load("en_core_web_sm")

I am trying to get around it

It looks like you’re trying to load a model from a shortcut, which is obsolete as of spaCy v3.0. To load the model, use its full name instead:

nlp = spacy.load("en_core_web_sm")

BTW that line of code wasn’t there when I forked yur repo. Are you sure you really need it? Making it work can be a lot more fun than you expect.

I updated my requirements.txt file. i dunno where else to edit

I guess you need to edit the line that caused the error:

File "/mount/src/mcq_generator/app.py", line 4, in <module>
    spacy.load('en')

Thank you very much. It worked. :pleading_face:.

Thank you too @Franky1 , @dataprofessor

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.