Ошибка после развертывания Django в Heroku. LookupError
Я только что развернул свое приложение django для анализа настроений на heroku. Развертывание прошло успешно, и я могу получить доступ к таким функциям, как регистрация входа и т.д. Но я не могу анализировать текст, потому что, по-видимому, nltk не может быть найден. Но я установил и импортировал его на локальном хосте, и он уже работал раньше.
Это мой первый опыт развертывания в heroku, поэтому я не знаком со всем.
Вот как это выглядит на моем локальном хосте:
Вот ошибка в herokuapp live webapp, когда я пытаюсь проанализировать настроения.
LookupError at /sentiment/type/
**********************************************************************
Resource e[93mpunkte[0m not found.
Please use the NLTK Downloader to obtain the resource:
e[31m>>> import nltk
>>> nltk.download('punkt')
e[0m
For more information see: https://www.nltk.org/data.html
Attempted to load e[93mtokenizers/punkt/PY3/english.picklee[0m
Searched in:
- '/app/nltk_data'
- '/app/.heroku/python/nltk_data'
- '/app/.heroku/python/share/nltk_data'
- '/app/.heroku/python/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- ''
**********************************************************************
Request Method: POST
Request URL: https://sentymeter.herokuapp.com/sentiment/type/
Django Version: 4.0
Exception Type: LookupError
Exception Value:
**********************************************************************
Resource e[93mpunkte[0m not found.
Please use the NLTK Downloader to obtain the resource:
e[31m>>> import nltk
>>> nltk.download('punkt')
e[0m
For more information see: https://www.nltk.org/data.html
Attempted to load e[93mtokenizers/punkt/PY3/english.picklee[0m
Searched in:
- '/app/nltk_data'
- '/app/.heroku/python/nltk_data'
- '/app/.heroku/python/share/nltk_data'
- '/app/.heroku/python/lib/nltk_data'
- '/usr/share/nltk_data'
- '/usr/local/share/nltk_data'
- '/usr/lib/nltk_data'
- '/usr/local/lib/nltk_data'
- ''
**********************************************************************
Exception Location: /app/.heroku/python/lib/python3.8/site-packages/nltk/data.py, line 583, in find
Python Executable: /app/.heroku/python/bin/python
Python Version: 3.8.9
Python Path:
['/app/.heroku/python/bin',
'/app',
'/app/.heroku/python/lib/python38.zip',
'/app/.heroku/python/lib/python3.8',
'/app/.heroku/python/lib/python3.8/lib-dynload',
'/app/.heroku/python/lib/python3.8/site-packages']
Server time: Wed, 05 Jan 2022 20:16:57 +0000
setting.py
Может ли кто-нибудь помочь мне решить эту проблему?
Похоже, что вы установили пакет nltk python, но не установили никаких данных для него.
Если вам нужно быстрое решение, вы можете подключиться к вашему heroku (heroku ps:exec
) и запустить оболочку django python manage.py shell
, а затем установить соответствующие модули nltk из оболочки python:
import nltk
nltk.download('punkt')
Поскольку вы хотите иметь возможность перераспределить его, лучше создать команду management command для этого и запустить ее аналогично тому, как вы запускаете миграции. Команда управления должна находиться в разделе {app}/management/commands/
Такая команда:
from django.core.management.base import BaseCommand, CommandError
class Command(BaseCommand):
help = 'Install NLTK stuff'
def handle(self, *args, **options):
import nltk
nltk.download(..)