简体   繁体   English

从 docker-compose 运行应用程序时出现 ModuleNotFoundError 错误。 我该如何解决这个问题?

[英]Got ModuleNotFoundError error while running app from docker-compose. How can i solve this?

I got following error while running from docker-compose but it works fine when I run docker run .从 docker-compose 运行时出现以下错误,但是当我运行docker run . Can some body help me to debug this.一些机构可以帮助我调试这个。 Error:错误:

File "/home/desktop/.local/bin/docker-compose", line 5, in <module>
    from compose.cli.main import main
  File "/usr/lib/python3.10/site-packages/compose/cli/main.py", line 19, in <module>
    from ..config import ConfigurationError
  File "/usr/lib/python3.10/site-packages/compose/config/__init__.py", line 3, in <module>
    from .config import ConfigurationError
  File "/usr/lib/python3.10/site-packages/compose/config/config.py", line 48, in <module>
    from .validation import match_named_volumes
  File "/usr/lib/python3.10/site-packages/compose/config/validation.py", line 8, in <module>
    from jsonschema import Draft4Validator
  File "/usr/lib/python3.10/site-packages/jsonschema/__init__.py", line 21, in <module>
    from jsonschema._types import TypeChecker
  File "/usr/lib/python3.10/site-packages/jsonschema/_types.py", line 3, in <module>
    from pyrsistent import pmap
ModuleNotFoundError: No module named 'pyrsistent'

My Dockerfile:我的 Dockerfile:

FROM python:3.9-alpine
ENV PYTHONUNBUFFERED=1
RUN apk update \
    && apk add --no-cache --virtual .build-deps
RUN pip install --upgrade pip
ENV APP_DIR /home/myapp
WORKDIR ${APP_DIR}
ADD requirements.txt ${APP_DIR}/
RUN pip install -r ${APP_DIR}/requirements.txt
COPY . .
EXPOSE 8000
ENTRYPOINT sh -c "python manage.py runserver 0.0.0.0:8000"

my docker compose file:我的码头工人撰写文件:

version: "3.9"
services:
  web:
    build: 
      context: .
    volumes:
      - .:/home/myapp
    ports:
      - "8000:8000"
    command: python manage.py runserver 0.0.0.0:8000
    container_name: django_myapp
    restart: always
    env_file: .env

While I run docker-compose build I get above error.当我运行docker-compose build时,出现上述错误。 I have Tried adding pyrsistent in requirements.txt but error is still same.我尝试在 requirements.txt 中添加 pyrsistent,但错误仍然相同。 How to solve this error??这个错误怎么解决??

This is a common Python error stack, you need to have some basic knowledge of Python to understand it, but I'll try to explain it briefly here.这是一个常见的 Python 错误栈,你需要具备一些 Python 的基础知识才能理解它,但我将尝试在这里简单地解释一下。

The error starts with /home/desktop/.local/bin/docker-compose which means it comes from docker-compose on the host machine, not from inside Docker .错误以/home/desktop/.local/bin/docker-compose开头,这意味着它来自主机上的 docker docker-compose ,而不是来自Docker内部。 The call stack indicates a compose -> jsonschema -> pyrsistent call path and pyrsistent is not found ( ModuleNotFoundError ), which means there's a missing dependency on your host machine.调用堆栈指示compose -> jsonschema -> pyrsistent调用路径和pyrsistent未找到( ModuleNotFoundError ),这意味着您的主机缺少依赖项。

Try pip3 install docker-compose --user and pip3 install pyrsistent --user :尝试pip3 install docker-compose --userpip3 install pyrsistent --user

  1. /home/desktop/.local/bin/docker-compose indicates your compose was installed to your home directory instead of the system path, so use --user to try a local installation. /home/desktop/.local/bin/docker-compose表示您的 compose 已安装到您的主目录而不是系统路径,因此请使用--user尝试本地安装。
  2. If everything works fine, pip3 install docker-compose --user will resolve the whole dependency tree and install pyrsistent automatically.如果一切正常, pip3 install docker-compose --user将解析整个依赖树并自动安装pyrsistent
  3. If it doesn't work, try the second command to manual fix pyrsistent package.如果它不起作用,请尝试第二个命令来手动修复pyrsistent包。
  4. If it still fails, try pip3 install --force-reinstall --user pyrsistent to reinstall pyrsistent package.如果仍然失败,请尝试pip3 install --force-reinstall --user pyrsistent重新安装pyrsistent包。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 运行应用程序时出错(ModuleNotFoundError: No module named 'tornado.ioloop') - Got an error while running an app (ModuleNotFoundError: No module named 'tornado.ioloop') 如何解决错误:ModuleNotFoundError: No module named &#39;jupyterhub&#39; - How can I solve the error: ModuleNotFoundError: No module named 'jupyterhub' 如何解决 Jupyter Lab 中的 ModuleNotFoundError? - How can I solve ModuleNotFoundError in Jupyter Lab? 错误为:-ModuleNotFoundError: No module named 'pyspark' While running Pyspark in docker - Error as:-ModuleNotFoundError: No module named ‘pyspark’ While running Pyspark in docker 如何获取从另一个容器(Docker Compose)运行的RabbitMQ的IP地址? - How can I get the IP address of RabbitMQ running from another container (Docker Compose)? grpcio 的构建轮失败 - docker-compose。 蟒蛇项目 - Failed building wheel for grpcio - docker-compose. Python project 如何在不创建虚拟环境的情况下使用Django和docker-compose解决reportMissingModuleSource? - How can I solve the reportMissingModuleSource by using Django and docker-compose without creating a virtual environment? 如何解决 ModuleNotFoundError: No module named 'flask_mysqldb' 在 Vs.Code 中的错误? - How can I solve ModuleNotFoundError: No module named 'flask_mysqldb' Error in Vs.Code? 如何使用 import_module 导入模块以解决测试代码中的“ModuleNotFoundError” - How can I import a module using import_module to solve 'ModuleNotFoundError' from test code 如何解决“ModuleNotFoundError: No module named 'psycopg2”问题? - How can I solve the "ModuleNotFoundError: No module named 'psycopg2" problem?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM