Ошибка импорта при развертывании приложения Django с помощью Zappa? - PullRequest
0 голосов
/ 09 февраля 2019

Я получаю следующую ошибку при создании приложения Django в качестве лямбда-функции с использованием Zappa.

[1549659279288] Instancing..
[1549659279532] cannot import name 'models': ImportError
Traceback (most recent call last):
  File "/var/task/handler.py", line 580, in lambda_handler
  return LambdaHandler.lambda_handler(event, context)
  File "/var/task/handler.py", line 245, in lambda_handler
  handler = cls()
  File "/var/task/handler.py", line 151, in __init__
  wsgi_app_function = get_django_wsgi(self.settings.DJANGO_SETTINGS)
  File "/var/task/zappa/ext/django_zappa.py", line 9, in get_django_wsgi
  from django.core.wsgi import get_wsgi_application
  File "/var/task/django/core/wsgi.py", line 2, in <module>
  from django.core.handlers.wsgi import WSGIHandler
  File "/var/task/django/core/handlers/wsgi.py", line 8, in <module>
  from django.core.handlers import base
  File "/var/task/django/core/handlers/base.py", line 7, in <module>
  from django.urls import get_resolver, set_urlconf
  File "/var/task/django/urls/__init__.py", line 1, in <module>
  from .base import (
  File "/var/task/django/urls/base.py", line 8, in <module>
  from .exceptions import NoReverseMatch, Resolver404
  File "/var/task/django/urls/exceptions.py", line 1, in <module>
  from django.http import Http404
  File "/var/task/django/http/__init__.py", line 5, in <module>
  from django.http.response import (
  File "/var/task/django/http/response.py", line 13, in <module>
  from django.core.serializers.json import DjangoJSONEncoder
  File "/var/task/django/core/serializers/__init__.py", line 23, in <module>
  from django.core.serializers.base import SerializerDoesNotExist
  File "/var/task/django/core/serializers/base.py", line 6, in <module>
  from django.db import models
ImportError: cannot import name 'models'

Я попытался запустить приложение локально, используя

python manage.py runserver

, и оно работаетхорошо на месте.Тем не менее, я получаю вышеуказанную ошибку при развертывании приложения в лямбда-функции.

Я использую Django версии 2.0.10, Python 3.6 вместе с AWS Aurora RDS.

Я ожидаюЭкземпляр лямбда-функции без ошибок точно так же, как и локально.

1 Ответ

0 голосов
/ 09 февраля 2019

Вызовите zappa, чтобы сохранить упакованный zip-файл после развертывания, и проверьте структуру папок или попробуйте запустить проект из этой папки.

Вы добавили Django в файл требований?Насколько я помню, Zappa перестраивает пакет lambda из свежей виртуальной среды, устанавливает файл require.txt и применяет вашу папку.

Или внимательно проверьте журналы cloudwatch на наличие ошибок импорта.Существуют ошибки импорта, которые отображаются только при обновлении контейнера после развертывания, которые не будут отображаться при каждом лямбда-вызове.

...