2013-01-16 2 views
0

GAE, Django를 사용하여 웹 앱을 만들려고합니다. 사용자 등록은 userena 일 것입니다. 난 이미 django-nonrel과 모든 설정을 사용하여 첫 부분을 작동시키고 userena를위한 syncdb를 시도하고있다. 이 오류가 계속 발생합니다. 제발 도와주세요.Google App Engine, django, userena, 데이터베이스 설정

BB8265:epapyri-django$ sudo django-admin.py syncdb 
Password: 
Traceback (most recent call last): 
    File "/usr/local/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module> 
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal 
    File "/Library/Python/2.7/site-packages/django/core/management/sql.py", line 6, in <module> 
    from django.db import models 
    File "/Library/Python/2.7/site-packages/django/db/__init__.py", line 11, in <module> 
    if DEFAULT_DB_ALIAS not in settings.DATABASES: 
    File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/Library/Python/2.7/site-packages/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. 

settings.py와 manage.py는 동일한 디렉토리에 있으며이 플러그인을 추가하기 전에이 문제가 없습니다.

다음과 같이 데이터베이스 섹션의 settings.py은 다음과 같습니다

# Activate django-dbindexer for the default database 
DATABASES['native'] = DATABASES['default'] 
DATABASES['default'] = {'ENGINE': 'dbindexer', 'TARGET': 'native'} 
AUTOLOAD_SITECONF = 'indexes' 

INSTALLED_APPS = (
# 'django.contrib.admin', 
    'django.contrib.contenttypes', 
    'django.contrib.auth', 
    'django.contrib.sessions', 
    'djangotoolbox', 
    'autoload', 
    'dbindexer', 
    # social_auth 
    'httplib2', 
    'openid', 
    'oauth2', 
    'social_auth', 
    #userena 
    'userena', 
    'guardian', 
    'easy_thumbnails', 
    'accounts', 
    # djangoappengine should come last, so it can override a few manage.py commands 
    'djangoappengine', 
) 

을이 나는 경우 runserver 한 번입니다

BB8265:epapyri-django$ sudo django-admin.py runserver 
Traceback (most recent call last): 
    File "/usr/local/bin/django-admin.py", line 5, in <module> 
    management.execute_from_command_line() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
    utility.execute() 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
    self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 261, in fetch_command 
    klass = load_command_class(app_name, subcommand) 
    File "/Library/Python/2.7/site-packages/django/core/management/__init__.py", line 69, in load_command_class 
    module = import_module('%s.management.commands.%s' % (app_name, name)) 
    File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module 
    __import__(name) 
    File "/Library/Python/2.7/site-packages/django/core/management/commands/runserver.py", line 8, in <module> 
    from django.core.servers.basehttp import AdminMediaHandler, run, WSGIServerException, get_internal_wsgi_application 
    File "/Library/Python/2.7/site-packages/django/core/servers/basehttp.py", line 26, in <module> 
    from django.views import static 
    File "/Library/Python/2.7/site-packages/django/views/static.py", line 95, in <module> 
    template_translatable = ugettext_noop(u"Index of %(directory)s") 
    File "/Library/Python/2.7/site-packages/django/utils/translation/__init__.py", line 75, in gettext_noop 
    return _trans.gettext_noop(message) 
    File "/Library/Python/2.7/site-packages/django/utils/translation/__init__.py", line 48, in __getattr__ 
    if settings.USE_I18N: 
    File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 184, in inner 
    self._setup() 
    File "/Library/Python/2.7/site-packages/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. 

내가 INSTALL_APP에서 비 장고 프로젝트를 제거 [편집] django.models을 내 계정/MyProfile에 가져오고 .datastore에서 chmod 777을 가져올 때마다 권한을 요청해서는 안되기 때문에 .datastore에 chmod 777을 가져옵니다.

{File "/git/ePapyri/epapyri-django/djangoappengine/db/base.py", line 160, in _value_for_db raise DatabaseError("Only strings and positive integers " django.db.utils.DatabaseError: Only strings and positive integers may be used as keys on GAE.}

답변

0

왜 syncdb를 실행의 runserver하는 django-admin.py을 사용하고 있습니까? manage.py을 사용해야합니다.

그리고 이들 중 하나를 실행하려면 반드시 sudo을 사용하지 않아야합니다.

은 (또한 당신의 INSTALLED_APPS는 말도 안되는 것 같습니다 참고 : 거기 전혀 사업을하지 httplib2 및 OAuth2를 같은 일반 파이썬 라이브러리의 전체를 많이 포함되어 있습니다.)

는 첫째

을 편집, 추적을 추가하기 위해 질문을 편집 했어야합니다.

두 번째로 오류 메시지는 매우 명확합니다. accounts/models.py 파일에 django.db.models을 가져 오지 않았습니다.

셋째, INSTALLED_APPS에 Django가 아닌 라이브러리를 포함하는 것은 여전히 ​​터무니 없습니다. 그렇게 할 필요가 없습니다. 그리고 데이터 저장소가 처음에는 sudo로 생성되어서는 안됩니다. 삭제하고 다시 생성하거나, 일반 사용자가 액세스 할 수 있도록 chmod을 사용하십시오.

+0

대니얼에게 감사드립니다. 고맙습니다. 나는 사회 인증을 사용하기 위해 장고를 설치했다. 그 라이브러리 중 일부는 그 부분을위한 것이다. 또한 데이터 저장소와 작동하기 때문에 항상 .datastore 파일에 대한 사용 권한에 대해 불만을 토로하기 때문에 sudo를 사용했습니다. 이것은 관리를 사용하여 얻은 메시지입니다. –

+0

이것은 또한 내가 userena, http://docs.django-userena.org/en/latest/installation.html#required-settings에 따라 수행하는 linke입니다. –

+0

문제점을 발견했습니다. django-nonrel은 models.OneToOneField를 지원하지 않습니다. 그래서 그것에 대해 불평하는거야. 어떻게 해결할 수 있니? –

0

GAE의 라이브러리에 PIL을 추가하여 문제가 해결되었다는 것을 알았습니다. yaml 파일은 python의 이미지 라이브러리에 대해 불평하고 있었기 때문에 문제를 해결할 수있었습니다. django에 대해 지원되는 모든 라이브러리에 대한 링크는 https://developers.google.com/appengine/docs/python/tools/libraries27이므로 모든 필요한 라이브러리를 .yaml 파일과 INSTALL_APP에 추가하십시오.