Docker部署Django报错ModuleNotFoundError: No module named 'shelter_v11'求助
Docker部署Django时ModuleNotFoundError问题排查
我在Win10系统上学习Docker部署Django,遇到了ModuleNotFoundError: No module named 'shelter_v11'的错误,以下是详细信息:
环境与配置
项目目录结构
[shelter_v11]/ ├── envs/.env ├── [shelter_v11]/ │ ├── Dockerfile │ ├── __init__.py │ ├── settings.py │ ├── urls.py │ └── wsgi.py ├── docker-compose.yml ├── requirements.txt └── manage.py
Dockerfile配置
FROM python:3.9 RUN apt update -y && apt upgrade -y ENV PYTHONDONTWRITEBYTECODE 1 ENV PYTHONUNBUFFERED 1 WORKDIR /usr/src/app RUN pip install --upgrade pip COPY ../requirements.txt . RUN pip install -r requirements.txt COPY . .
docker-compose.yml配置
version: '3.4' services: web: build: ./ command: python manage.py runserver 0.0.0.0:8000 volumes: - ./:/usr/src/app ports: - 8000:8000 env_file: - ./envs/.env
错误日志
运行docker-compose build后,容器输出的完整错误信息:
2023-05-01 15:12:02 Traceback (most recent call last): 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 402, in run_from_argv 2023-05-01 15:12:02 self.execute(*args, **cmd_options) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 74, in execute 2023-05-01 15:12:02 super().execute(*args, **options) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 448, in execute 2023-05-01 15:12:02 output = self.handle(*args, **options) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/commands/runserver.py", line 81, in handle 2023-05-01 15:12:02 if not settings.DEBUG and not settings.ALLOWED_HOSTS: 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 92, in __getattr__ 2023-05-01 15:12:02 self._setup(name) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 79, in _setup 2023-05-01 15:12:02 self._wrapped = Settings(settings_module) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 190, in __init__ 2023-05-01 15:12:02 mod = importlib.import_module(self.SETTINGS_MODULE) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module 2023-05-01 15:12:02 return _bootstrap._gcd_import(name[level:], package, level) 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked 2023-05-01 15:12:02 ModuleNotFoundError: No module named 'shelter_v11' 2023-05-01 15:12:02 2023-05-01 15:12:02 During handling of the above exception, another exception occurred: 2023-05-01 15:12:02 2023-05-01 15:12:02 Traceback (most recent call last): 2023-05-01 15:12:02 File "/usr/src/app/manage.py", line 22, in <module> 2023-05-01 15:12:02 main() 2023-05-01 15:12:02 File "/usr/src/app/manage.py", line 18, in main 2023-05-01 15:12:02 execute_from_command_line(sys.argv) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 446, in execute_from_command_line 2023-05-01 15:12:02 utility.execute() 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/__init__.py", line 440, in execute 2023-05-01 15:12:02 self.fetch_command(subcommand).run_from_argv(self.argv) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/core/management/base.py", line 415, in run_from_argv 2023-05-01 15:12:02 connections.close_all() 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/connection.py", line 84, in close_all 2023-05-01 15:12:02 for conn in self.all(initialized_only=True): 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/connection.py", line 76, in all 2023-05-01 15:12:02 return [ 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/connection.py", line 73, in __iter__ 2023-05-01 15:12:02 return iter(self.settings) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/functional.py", line 57, in __get__ 2023-05-01 15:12:02 res = instance.__dict__[self.name] = self.func(instance) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/connection.py", line 45, in settings 2023-05-01 15:12:02 self._settings = self.configure_settings(self._settings) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/db/utils.py", line 148, in configure_settings 2023-05-01 15:12:02 databases = super().configure_settings(databases) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/utils/connection.py", line 50, in configure_settings 2023-05-01 15:12:02 settings = getattr(django_settings, self.settings_name) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 92, in __getattr__ 2023-05-01 15:12:02 self._setup(name) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 79, in _setup 2023-05-01 15:12:02 self._wrapped = Settings(settings_module) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/site-packages/django/conf/__init__.py", line 190, in __init__ 2023-05-01 15:12:02 mod = importlib.import_module(self.SETTINGS_MODULE) 2023-05-01 15:12:02 File "/usr/local/lib/python3.9/importlib/__init__.py", line 127, in import_module 2023-05-01 15:12:02 return _bootstrap._gcd_import(name[level:], package, level) 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 972, in _find_and_load_unlocked 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1030, in _gcd_import 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 1007, in _find_and_load 2023-05-01 15:12:02 File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked 2023-05-01 15:12:02 ModuleNotFoundError: No module named 'shelter_v11'
已尝试操作
- 将envs目录移至应用目录
- 修改Dockerfile中的WORKDIR路径
- 调整docker-compose构建目录
- 移动manage.py和requirements.txt位置
以上操作均未解决问题,推测是应用模块未被Python检测到,需要分析错误原因并提供解决方案。
内容的提问来源于stack exchange,提问作者grishko0o
相关产品推荐
相关产品推荐

