【发布时间】:2019-03-03 07:08:47
【问题描述】:
我正在尝试使用使用 nltk 库的 docker 启动 django 服务。 在 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 的情况下运行它时,相同的代码也可以工作。
【问题讨论】:
-
在什么方面不起作用?您能否将实际的错误消息、Dockerfile 以及您的
docker run命令或docker-compose.yml添加到问题中? -
docker run -it -e ENVIRONMENT_NAME=local -e REGION_NAME=local -p 9081:8080 docker_image- 运行命令 -
@DavidMaze - 我已经在问题中添加了来自 Dockerfile 的相关行。此外,添加了错误消息和 docker-run 命令。
-
安装
nltk_data、docker build -f Dockerfile -v $HOME/nltk_data/:/nltk_data/。然后在setup.py之前,在Dockerfile 中,ENV NLTK_DATA=/nltk_data/
标签: django python-3.x docker nltk