NLTK不在docker中工作

NLTK不在docker中工作,docker,nltk,docker-compose,Docker,Nltk,Docker Compose,我想在docker中运行nltk服务。但是,我总是收到错误消息“nltk”不是一个包。你能找出哪里出了问题吗?在构建过程中,一切正常,nltk版本被打印出来。当用docker compose up nltk启动容器时,我得到 $docker编写nltk Dockerfile nltk.py 尝试将nltk.py重命名为其他名称。我猜import-nltk和from-nltk.corpus试图从nltk.py文件而不是包中导入。它在构建映像时工作的原因是,您的nltk.py文件还不存在,因为它是在

我想在docker中运行nltk服务。但是,我总是收到错误消息“nltk”不是一个包。你能找出哪里出了问题吗?在构建过程中,一切正常,nltk版本被打印出来。当用docker compose up nltk启动容器时,我得到

$docker编写nltk

Dockerfile

nltk.py

尝试将nltk.py重命名为其他名称。我猜import-nltk和from-nltk.corpus试图从nltk.py文件而不是包中导入。它在构建映像时工作的原因是,您的nltk.py文件还不存在,因为它是在运行时从compose文件装入的

最终文件

最终docker撰写


伟大的我想这就成功了。非常感谢。我将发布最终版本
Recreating nltk
Attaching to nltk
nltk          | Traceback (most recent call last):
nltk          |   File "/var/www/nltk.py", line 1, in <module>
nltk          |     from nltk.corpus import brown
nltk          |   File "/var/www/nltk.py", line 1, in <module>
nltk          |     from nltk.corpus import brown
nltk          | ModuleNotFoundError: No module named 'nltk.corpus'; 'nltk' is not a package
nltk:
    build: docker/nltk
    container_name: nltk
    volumes:
      - ./volumes/nltk/var/www/nltk.py:/var/www/nltk.py
    environment:
      HOME: /var/www
FROM python:3.6

RUN mkdir /var/www
ENV HOME /var/www
WORKDIR /var/www
RUN pip install -U nltk
RUN pip install -U numpy
RUN python -m nltk.downloader -d $HOME/nltk_data all
RUN python -c "import nltk"
RUN python -c "import nltk; print(nltk.__version__)"

EXPOSE 80

CMD [ "python", "/var/www/nltk.py" ]
import nltk
from nltk.corpus import brown

brown.words()
FROM python:3.6

ENV NLTK_DATA /usr/share/nltk_data

RUN pip install -U nltk
RUN pip install -U numpy
RUN python -m nltk.downloader -d /usr/share/nltk_data all

EXPOSE 80

WORKDIR /var/www

CMD [ "python", "/var/www/main.py" ]
nltk:
    build: docker/nltk
    container_name: nltk
    volumes:
      - ./volumes/nltk/var/www/main.py:/var/www/main.py