Python/Docker ImportError: Не удалось импортировать Django, но он установлен

Я пытаюсь запустить программу микросервисов через файл manager.py, который использует docker, но когда я запускаю программу с помощью docker-compose up, я получаю ImportError, который говорит мне, что Django не установлен, хотя он установлен. Я пытался использовать библиотеку venv для создания и установки Django с помощью моей виртуальной среды vegatestnet, я также пытался изменить переменную пути Windows, чтобы указать на проект, и, наконец, я пытался даже использовать import sys print(sys.path), чтобы найти, где находится мой PYTHON_PATH, но безрезультатно. Я также пытался использовать эти ссылки, чтобы помочь мне: ImportError: Не удалось импортировать Django. Вы уверены, что он установлен и доступен в вашей переменной окружения PYTHONPATH? , ModuleNotFoundError: No module named 'django' while running server in virtual environment, and Couldn't import Django. Вы уверены, что он установлен и доступен в вашей переменной окружения PYTHONPATH? --> WSGI.PY файл и я попробовал их решения, но я все еще получаю эту ошибку. Вот структура каталогов, с которой я работаю:

-veganettest
 ...
 -posts (folder)
 -profiles (folder)
  ...
  producer.py (my producer file)
 -static_cdn (folder)
 -static_project (folder)
 ...
 -veganettest (folder)
 -vegatestnet (virtual envoirment folder)
 admin (my admin file)
 consumer.py (my consumer file)
 db.sqlite3 (database file)
 docker-compose.yml (docker compose file)
 Dockerfile (just the dockerfile)
 manage.py (manager file - file where I am getting the error)
 requirements.txt (import file)

Вот ошибка, которую я получаю, когда запускаю программу:

7e1fb27ba719_veganettest_backend_1 | ['C:\\app', 'C:\\Python\\python39.zip', 'C:\\Python\\DLLs', 'C:\\Python\\lib', 'C:\\Python', 'C:\\Python\\lib\\site-packages']
7e1fb27ba719_veganettest_backend_1 | Traceback (most recent call last):
7e1fb27ba719_veganettest_backend_1 |   File "C:\app\manage.py", line 11, in main
7e1fb27ba719_veganettest_backend_1 |     from django.core.management import execute_from_command_line
7e1fb27ba719_veganettest_backend_1 | ModuleNotFoundError: No module named 'django'
7e1fb27ba719_veganettest_backend_1 |
7e1fb27ba719_veganettest_backend_1 | The above exception was the direct cause of the following exception:
7e1fb27ba719_veganettest_backend_1 |
7e1fb27ba719_veganettest_backend_1 | Traceback (most recent call last):
7e1fb27ba719_veganettest_backend_1 |   File "C:\app\manage.py", line 22, in <module>
7e1fb27ba719_veganettest_backend_1 |     main()
7e1fb27ba719_veganettest_backend_1 |   File "C:\app\manage.py", line 13, in main
7e1fb27ba719_veganettest_backend_1 |     raise ImportError(
7e1fb27ba719_veganettest_backend_1 | ImportError: Couldn't import Django. Are you sure it's installed and available on your PYTHONPATH environment variable? Did you forget to activate a virtual environment?
veganettest_queue_1 exited with code 1
7e1fb27ba719_veganettest_backend_1 exited with code 1

Вот мои файлы manage.py, Dockerfile, docker-compose.yml и requirements.txt соответственно:

файлmanage.py:

#!/usr/bin/env python
"""Django's command-line utility for administrative tasks."""
import os
import sys

print(sys.path)
def main():
    """Run administrative tasks."""
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'veganettest.settings')
    try:
        from django.core.management import execute_from_command_line #line where I am receiving the error
    except ImportError as exc:
        raise ImportError(
            "Couldn't import Django. Are you sure it's installed and "
            "available on your PYTHONPATH environment variable? Did you "
            "forget to activate a virtual environment?"
        ) from exc
    execute_from_command_line(sys.argv)


if __name__ == '__main__':
    main()

Dockerfile:

FROM python:3.9.6
ENV PYTHONUNBUFFERED 1
WORKDIR /app
COPY requirements.txt /app/requirements.txt
RUN pip install -r requirements.txt
COPY . /app

файл docker-compose.yml:

version: '3.8'
services:
  backend:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'python manage.py runserver 0.0.0.0:8000'
    ports:
      - 8000:8000
    volumes:
      - C:/Users/trevo/OneDrive/Desktop/veganet/veganettest:c:/app
    depends_on:
      - db

  queue:
    build:
      context: .
      dockerfile: Dockerfile
    command: 'python -u consumer.py'
    depends_on:
      - db

  db:
    image: mysql:5.7.22
    restart: always
    environment:
      MYSQL_DATABASE: vegatest
      MYSQL_USER: root
      MYSQL_PASSWORD: root
      MYSQL_ROOT_PASSWORD: root
    volumes:
      - .dbdata:/var/lib/mysql
    ports:
      - 33066:3306

requirements.txt:

Django==4.0.2
djangorestframework==3.12.2
mysqlclient==2.0.1
django-mysql==3.9
django-cors-headers==3.5.0
pika==1.1.0

Что я делаю неправильно? Как я могу это исправить? Спасибо.

Вернуться на верх