2017-06-04 4 views
1

Ich diploe aws Lambda Django-Anwendung mit Hilfe von zappa. Mein Projekt funktioniert lokal gut mit wsgi, aber wenn ich es auf aws Lambda deploy, erhöht es den Fehler.zappa Handler nicht importieren Django App

Irgendwelche Hilfe?

zappa Schwanz:

:`Calling tail for stage new2.. 
Warning! AWS Lambda may not be available in this AWS Region! 
Warning! AWS API Gateway may not be available in this AWS Region! 
[1496566100097] [INFO] 2017-06-04T08:48:20.97Z 8e08e84e-4902-11e7-9744-b7104a9a6ab2 Detected environment to be AWS Lambda. Using synchronous HTTP transport. 
[1496566100160] No module named accounts: ImportError 
Traceback (most recent call last): 
    File "/var/task/handler.py", line 484, in lambda_handler 
    return LambdaHandler.lambda_handler(event, context) 
    File "/var/task/handler.py", line 240, in lambda_handler 
    handler = cls() 
    File "/var/task/handler.py", line 143, in __init__ 
    wsgi_app_function = get_django_wsgi(self.settings.DJANGO_SETTINGS) 
    File "/var/task/django_zappa_app.py", line 20, in get_django_wsgi 
    return get_wsgi_application() 
    File "/tmp/pip-build-dt_DVN/Django/django/core/wsgi.py", line 13, in get_wsgi_application 
    File "/tmp/pip-build-dt_DVN/Django/django/__init__.py", line 27, in setup 
    File "/tmp/pip-build-dt_DVN/Django/django/apps/registry.py", line 85, in populate 
    File "/tmp/pip-build-dt_DVN/Django/django/apps/config.py", line 94, in create 
    File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module 
    __import__(name) 
ImportError: No module named accounts 
[1496566112758] 'NoneType' object is not callable 

` Mein Projektbaum:

. 
├── apps 
│   ├── accounts 
│   │   ├── admin.py 
│   │   ├── apps.py 
│   │   ├── filters.py 
│   │   ├── __init__.py 
│   │   ├── migrations 
│   │   │   ├── 0001_initial.py 
│   │   │   └── __init__.py 
│   │   ├── models.py 
│   │   ├── serializers.py 
│   │   ├── tests.py 
│   │   └── views.py 
│   ├── helpers 
│   │   ├── admin.py 
│   │   ├── apps.py 
│   │   ├── __init__.py 
│   │   ├── migrations 
│   │   │   └── __init__.py 
│   │   ├── models.py 
│   │   ├── tests.py 
│   │   └── views.py 
│   ├── __init__.py 
│  
├── manage.py 
├── my_project 
│   ├── apiv1_urls.py 
│   ├── __init__.py 
│   ├── partner_logging.py 
│   ├── settings 
│   │   ├── base.py 
│   │   ├── conf.ini 
│   │   
│   │   ├── dev.py 
│   │   ├── __init__.py 
│   │   └── prod.py 
│   ├── urls.py 
│   └── wsgi.py 
├── requirements 
│   ├── base.txt 
│   └── dev.txt 
└── zappa_settings.json 

zappa_settings.json

{ 
"new2": { 
    "aws_region": "ap-south-1", 
    "django_settings": "my_project.settings", 
    "profile_name": "default", 
    "s3_bucket": "xyz" 
} 

}

wsgi.py

import os 
import sys 
from django.core.wsgi import get_wsgi_application 
PROJECT_ROOT = os.path.abspath(os.path.dirname(os.path.dirname(__file__))) 
sys.path.insert(0, os.path.join(PROJECT_ROOT, 'apps')) 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "my_project.settings") 

application = get_wsgi_application() 
+0

gleiche Problem ist das Hochladen. Wenn Sie Ihre zip-Datei überprüfen, werden Sie wahrscheinlich feststellen, dass der apps-Ordner fehlt. Ich arbeite immer noch daran, wie ich Zappa dazu bringen kann, das zu lösen, bisher hilft die 'include'-Einstellung nicht. –

Antwort

0

Mein Problem stellte sich heraus, dass meine Bewerbung und meine virtuellen Umgebung den gleichen Namen hat. Also, wenn Sie virtualenvwrapper verwenden und Ihr venv heißt apps oder accounts versuchen Sie eine neue mit einem anderen Namen.

wenn Sie sehen wollen, was es hier eigentlich

Verwandte Themen