django - nltk 下载在 docker 内无法用于 django 服务

标签 django python-3.x docker nltk

我正在尝试使用 docker 启动 django 服务,该服务使用 nltk 库。 在 dockerfile 中,我调用了 setup.py,它调用了 nltk.download。根据我在构建 docker 镜像期间看到的日志,此步骤成功运行。

但是当我运行 docker 镜像并尝试连接到我的 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'
**********************************************************************

知道这里出了什么问题吗? 另外,当我在没有 docker 的情况下运行相同的代码时,它也可以工作。

最佳答案

之前遇到过同样的问题并且做过几乎与您所做的相同的事情,我假设您在这里缺少的是配置 nltk.data.path通过添加到 os.getcwd() 所在的路径中。

关于django - nltk 下载在 docker 内无法用于 django 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535788/

相关文章:

python - Django:如何避免不必要的 SQL 语句?

python - 让它在输入输入后不必点击 "Enter"- Python

python - 为什么 nginx 没有启动我的服务?

python 3 : importing different python modules with same name

python - 如何在 python 中运行非线性回归

docker - 如何在多台 docker 机器上构建和启动容器

postgresql - 使用 Docker/Docker compose 运行 Postgres 迁移

python - 在 docker 中部署一个最小的 flask 应用程序 - 服务器连接问题

html - 当文本变长时,它会改变我的形式,也很难在正确的位置安装 div

Django 用 Case 和 When(条件表达式)注释排除