NLTK скачать не работает внутри докера для службы Django - PullRequest
0 голосов
/ 27 сентября 2018

Я пытаюсь запустить сервис django, используя docker, который использует библиотеку nltk.В файле dockerfile я вызвал setup.py, который вызывает nltk.download.Согласно журналам, которые я вижу во время сборки образа докера, этот шаг проходит успешно.

Но когда я запускаю образ докера и пытаюсь подключиться к моей службе django, я получаю сообщение об ошибке, в котором говорится, что nltk.download еще не произошло.

Код Dockerfile -

RUN . ${PYTHON_VIRTUAL_ENV_FOLDER}/bin/activate && python ${PYTHON_APP_FOLDER}/setup.py

Код setup.py -

import nltk
import os

nltk.download('stopwords', download_dir=os.getcwd() + '/nltk_data/')
nltk.download('wordnet', download_dir=os.getcwd() + '/nltk_data/')

Ошибка:

**********************************************************************
  Resource stopwords not found.
  Please use the NLTK Downloader to obtain the resource:

  >>> import nltk
  >>> nltk.download('stopwords')

  Searched in:
    - '/root/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
    - '/usr/src/venv/nltk_data'
    - '/usr/src/venv/share/nltk_data'
    - '/usr/src/venv/lib/nltk_data'
**********************************************************************

Есть идеи, что здесь не так?Кроме того, тот же код работает, когда я запускаю его без докера.

1 Ответ

0 голосов
/ 27 сентября 2018

Столкнувшись с той же проблемой раньше и сделав почти то же самое, что вы сделали, я бы предположил, что вам не хватает здесь настройки nltk.data.path путем добавления впуть, где ваш os.getcwd().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...