[英]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 --user
和pip3 install pyrsistent --user
:
/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
尝试本地安装。pip3 install docker-compose --user
will resolve the whole dependency tree and install pyrsistent
automatically.pip3 install docker-compose --user
将解析整个依赖树并自动安装pyrsistent
。pyrsistent
package.pyrsistent
包。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.