2017-06-04 83 views
1

我在zappa的幫助下部署aws lambda django應用程序。我的項目使用wsgi在本地工作良好,但是當我在aws lambda上部署時,會引發錯誤。zappa處理程序不導入django應用程序

任何幫助?

扎帕尾

:`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 

` 我的項目樹:

. 
├── 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

同樣的問題在這裏。如果你檢查你的zip文件,你可能會看到apps文件夾丟失。我仍在研究如何讓Zappa解決這個問題,到目前爲止'include'設置並沒有幫助。 –

回答

0

我的問題竟然是我的申請,我的虛擬環境中具有相同的名稱。因此,如果您使用的是virtualenvwrapper,並且您的venv被稱爲appsaccounts請嘗試製作一個名稱不同的新名字。

如果你想看看它實際上傳什麼

相關問題