2012-12-11 3 views
3

여러분,이 질문을 수 백만 번 받았다는 것을 알고 있습니다. Django 설문 조사에서 만든 앱 (Django 자습서에서 만든 앱)을 Google 클라우드 SQL을 사용하여 Google 앱 엔진에서 실행하려고하면 DJANGO_SETTINGS_MODULE이 정의되지 않은 오류가 발생합니다. 여기 GAE 서버에서 django_settings_module이 정의되지 않았습니다.

는 구글 애플리케이션 엔진 로그 나에게 주어진 실제 스택 추적입니다 :

Traceback (most recent call last): 
    File "/base/python27_runtime/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 223, in Handle 
    result = handler(dict(self._environ), self._StartResponse) 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/wsgi.py", line 219, in __call__ 
    self.load_middleware() 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/core/handlers/base.py", line 39, in load_middleware 
    for middleware_path in settings.MIDDLEWARE_CLASSES: 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/base/python27_runtime/python27_lib/versions/third_party/django-1.4/django/conf/__init__.py", line 40, in _setup 
    raise ImportError("Settings cannot be imported, because environment variable %s is undefined." % ENVIRONMENT_VARIABLE) 
    ImportError: Settings cannot be imported, because environment variable DJANGO_SETTINGS_MODULE is undefined. 

Google 앱 엔진과 함께 제공하지만 관리 dev_appserver.py에서 실행하려고 할 때 나는 같은 오류가 발생했다 애플리케이션 제목을 파일에

env_variables: 
    DJANGO_SETTINGS_MODULE: 'DjangoTut.settings' 

을 추가하여 그것을 해결합니다.

내 프로젝트 디렉토리는 다음과 같습니다

  • DjangoTut
    • DjangoTut
      • 초기화
      • settings.py
      • urls.py
      • wsgi.py을
    • 여론 조사
      • 초기화
      • admin.py
      • models.py
      • tests.py
      • urls.py
      • views.py
    • app.yaml
    • ,
    • manage.py

내 애플리케이션 제목 파일은 다른 모든 파일은 내가

를 추가하는 시도 https://docs.djangoproject.com/en/1.4/intro/tutorial01/

여기에 제안 된 것과 동일하다이

application: hochotime 
    version: 10 
    runtime: python27 
    api_version: 1 
    threadsafe: true 


    libraries: 
    - name: django 
    version: "1.4" 

    builtins: 
    - django_wsgi: on 

    env_variables: 
    DJANGO_SETTINGS_MODULE: 'settings' 

처럼 보인다

import os 
    os.environ['DJANGO_SETTINGS_MODULE'] = 'DjangoTut.settings' 

거의 모든 단일 파이썬 파일의 시작 부분에 있지만 아무 소용이 없습니다. 설정 디렉토리를 app 디렉토리가 아닌 프로젝트 디렉토리로 옮기고 모든 설정을 '설정'으로 바꾸기 위해 os.environ['DJANGO_SETTINGS_MODULE']을 변경하려고했습니다. 나는 또한 여기에 표시된대로 직접 설정을 시도했다 https://docs.djangoproject.com/en/dev/topics/settings/#using-settings-without-setting-django-settings-module 그래도, 나는 Google 서버에서 실행하려고 할 때마다 동일한 오류가 발생합니다.

도움을 주시면 감사하겠습니다.

답변

1

Django-nonrel을 사용하고 있습니까?그렇지 않다면이 appengine ariticle을 살펴보십시오.

나는 애플리케이션 제목과 같은 디렉토리에서 settings.py를 이동하려고 할 것입니다. app.yaml에서 env_variables를 제거하면 작동시키기 위해 env_variables가 필요하지 않습니다. (당신이 당신의 전체 애플리케이션 제목 여부를 목록에 있는지 확실하지 않습니다) 당신이 아직없는 경우 정의 핸들러가 필요합니다 그러나 :

handlers: 
- url: /static 
    static_dir: static 

- url: /.* 
    script: main.py 

환경 설정은 설정 (main.py에서 WSGI 핸들러에 있어야합니다 이 예) 위의 Google 문서에 나와 있습니다. 이것은 당신이 올바른 길을 가고 얻을 수

os.environ['DJANGO_SETTINGS_MODULE'] = 'settings' 

희망. 나는 그것을 듣고 같이 GAE의 상단에 장고를 실행하는이 방법이 찬성 https://developers.google.com/appengine/docs/python/에서 사용되지 않으며, 때문에

+0

나는 장고 - nonrel를 사용하고 있지 않다 cloud-sql/django. 그건 내 app.yaml 파일의 전체 그러나 그 추가 사항을 시도하고 그것은 외로운 threadsafe (분명히 이것은 오류 던졌습니다) 확인 yaml 파일을 변경하고 난 여전히 둘 다 로컬로 실행하고 그것을 업로드 할 때 오류가 발생합니다. 구글 서버. – Scott