我正在尝试使用 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/