docker工人不工作NLTK
我想在Docker中运行一个nltk服务。 但是,我总是得到错误信息“'nltk'不是一个包”。 你能弄清楚什么是错的? 在构build过程中一切正常,打印nltk版本。 当用docker-compose up nltk
启动容器时,我得到docker-compose up nltk
$ docker-compose up nltk
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
泊坞窗,compose.yml
nltk: build: docker/nltk container_name: nltk volumes: - ./volumes/nltk/var/www/nltk.py:/var/www/nltk.py environment: HOME: /var/www
Dockerfile
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" ]
nltk.py
import nltk from nltk.corpus import brown brown.words()
尝试将nltk.py
重命名为其他内容。 我猜测import nltk
和from nltk.corpus
试图从您的nltk.py
文件而不是包导入。 构build映像时,它的工作原理是因为你的nltk.py
文件还没有存在,因为它是在nltk.py
文件的运行nltk.py
入的。
最终的Dockerfile
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" ]
最终的docker工人
nltk: build: docker/nltk container_name: nltk volumes: - ./volumes/nltk/var/www/main.py:/var/www/main.py