首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >码头NLTK下载

码头NLTK下载
EN

Stack Overflow用户
提问于 2015-06-30 15:56:04
回答 5查看 23.6K关注 0票数 41

我正在使用以下Dockerfile构建一个码头容器:

代码语言:javascript
复制
FROM ubuntu:14.04

RUN apt-get update

RUN apt-get install -y python python-dev python-pip

ADD . /app

RUN apt-get install -y python-scipy

RUN pip install -r /arrc/requirements.txt

EXPOSE 5000

WORKDIR /app

CMD python app.py

在运行映像并得到以下错误之前,一切都进行得很顺利:

代码语言:javascript
复制
**********************************************************************
  Resource u'tokenizers/punkt/english.pickle' not found.  Please
  use the NLTK Downloader to obtain the resource:  >>>
  nltk.download()
  Searched in:
    - '/root/nltk_data'
    - '/usr/share/nltk_data'
    - '/usr/local/share/nltk_data'
    - '/usr/lib/nltk_data'
    - '/usr/local/lib/nltk_data'
    - u''
**********************************************************************

我以前遇到过这个问题,我们讨论过here,但是我不知道如何使用Docker来处理它。我试过:

代码语言:javascript
复制
CMD python
CMD import nltk
CMD nltk.download()

以及:

代码语言:javascript
复制
CMD python -m nltk.downloader -d /usr/share/nltk_data popular

但还是会犯错误。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2015-07-17 03:06:00

在Dockerfile中,尝试添加:

RUN python -m nltk.downloader punkt

这将运行命令并将所请求的文件安装到//nltk_data/中。

这个问题很可能与在Dockerfile中使用CMD和运行有关。CMD文件:

CMD的主要目的是为正在执行的容器提供默认值。

它是在docker run <image>期间使用的,而不是在构建期间使用的。因此,其他CMD行可能被最后一个CMD python app.py行覆盖。

票数 51
EN

Stack Overflow用户

发布于 2020-06-30 20:18:14

我尝试了所有建议的方法,但都没有奏效,所以我意识到nltk模块在/root/nltk_data中搜索。

步骤1:我在我的机器上下载了punkt

代码语言:javascript
复制
python3
>>import nltk
>>nltk.download('punkt')

而punkt位于/root/nltk_data/记号器中。

步骤2:我将令牌程序文件夹复制到我的目录中,目录如下所示

代码语言:javascript
复制
.
|-app/
|-tokenizers/
|--punkt/
|---all those pkl files
|--punkt.zip

步骤3:然后修改Dockerfile,将其复制到我的docker实例中

代码语言:javascript
复制
COPY ./tokenizers /root/nltk_data/tokenizers

步骤4:新实例有punkt

票数 10
EN

Stack Overflow用户

发布于 2019-05-03 13:40:05

在为django应用程序创建带有ubuntu映像和python3的对接映像时,我也面临着同样的问题。

我决定如下所示。

代码语言:javascript
复制
# start from an official image
FROM ubuntu:16.04

RUN apt-get update \
  && apt-get install -y python3-pip python3-dev \
  && apt-get install -y libmysqlclient-dev python3-virtualenv

# arbitrary location choice: you can change the directory
RUN mkdir -p /opt/services/djangoapp/src
WORKDIR /opt/services/djangoapp/src

# copy our project code
COPY . /opt/services/djangoapp/src

# install dependency for running service
RUN pip3 install -r requirements.txt
RUN python3 -m nltk.downloader punkt
RUN python3 -m nltk.downloader wordnet

# Setup supervisord
RUN mkdir -p /var/log/supervisor
COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

# Start processes
CMD ["/usr/bin/supervisord"]
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31143015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档