자습서 https://cloud.google.com/tools/repo/push-to-deploy-quickstart을 배포하기 위해 푸시 버튼을 사용하여 Google App Engine에 django 1.6 프로젝트를 배포하려고합니다. 프로젝트는 로컬에서 완벽하게 잘 작동하지만 프로젝트를 푸는 경우 앱 엔진은 django 모델을 가져올 때 django 0.96으로 폴백하는 것 같습니다. 아래 오류에서 볼 수 있습니다. 왜 이런 일이 생길까요?오류시 앱 엔진 빌드가 중단됩니다. 환경 변수 DJANGO_SETTINGS_MODULE이 정의되지 않았습니다.
os.environ['DJANGO_SETTINGS_MODULE'] = 'mango.settings'
디렉토리 : 나는 또한 appengine_config.py 내부 코드 줄을 배치하는 시도
import sys
sys.path.insert(0,'./Lib/site-packages')
sys.path.insert(1,'./apps')
import os
#Delete current django version in production
for key in [key for key in sys.modules if key.startswith('django')]:
del sys.modules[key]
from django.core.wsgi import get_wsgi_application
_application = get_wsgi_application()
def application(environ, start_response):
try:
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproject.settings'
except Exception:
pass
return _application(environ, start_response)
======================================================================
ERROR: Failure: EnvironmentError (Environment variable DJANGO_SETTINGS_MODULE is undefined.)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/nose/loader.py", line 414, in loadTestsFromName
addr.filename, addr.module)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 47, in importFromPath
return self.importFromDir(dir_path, fqname)
File "/usr/lib/python2.7/dist-packages/nose/importer.py", line 94, in importFromDir
mod = load_module(part_fqname, fh, filename, desc)
File "/var/jenkins/workspace/mango_app/apps/merchant/__init__.py", line 1, in <module>
from gateways import *
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/__init__.py", line 1, in <module>
from plugnpay import PlugnPay
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/plugnpay.py", line 5, in <module>
from apps.merchant.exceptions import MissingDataError
File "/var/jenkins/workspace/mango_app/apps/merchant/__init__.py", line 1, in <module>
from gateways import *
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/__init__.py", line 1, in <module>
from plugnpay import PlugnPay
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/plugnpay.py", line 6, in <module>
from apps.merchant.lib.api import PostGateway
File "/var/jenkins/workspace/mango_app/apps/merchant/lib/api.py", line 6, in <module>
from apps.merchant.gateways.core import Gateway
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/core.py", line 7, in <module>
from apps.merchant.gateways.models import PlugnpayResponseModel
File "/var/jenkins/workspace/mango_app/apps/merchant/gateways/models.py", line 1, in <module>
from django.db import models
File "/google-cloud-sdk/platform/google_appengine/lib/django-0.96/django/db/__init__.py", line 7, in <module>
if not settings.DATABASE_ENGINE:
File "/google-cloud-sdk/platform/google_appengine/lib/django-0.96/django/conf/__init__.py", line 28, in __getattr__
self._import_settings()
File "/google-cloud-sdk/platform/google_appengine/lib/django-0.96/django/conf/__init__.py", line 53, in _import_settings
raise EnvironmentError, "Environment variable %s is undefined." % ENVIRONMENT_VARIABLE
EnvironmentError: Environment variable DJANGO_SETTINGS_MODULE is undefined.
애플리케이션 제목을
application: instance-id
version: 1
runtime: python27
api_version: 1
threadsafe: true
env_variables:
DJANGO_SETTINGS_MODULE: 'myproject.settings'
handlers:
- url: .*
script: myproject.wsgi.application
wsgi.py 구조
C:.
│ .gitignore
│ app.yaml
│ appengine_config.py
│ manage.py
│ requirements.txt
│ __init__.py
├───apps
├───lib
│ __init__.py
├───myproject
│ app.py
│ settings.py
│ urls.py
│ views.py
│ wsgi.py
│ __init__.py