0

GAE、DjangoでWebアプリを構築しようとしています。ユーザー登録はuserenaになります。私はすでにdjango-nonrelとすべてのセットアップを使用して最初の部分を機能させており、userenaのsyncdbを試みています。このエラーが発生し続けます。これについて教えてください。

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',
)

そして、これは私がサーバーを実行したら

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.

[編集]

非 Django プロジェクトを INSTALL_APP から削除し、django.models を my accounts/MyProfile にインポートし、.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.}

4

2 に答える 2

0

django-admin.pysyncdb と runserver を実行するために使用するのはなぜですか? を使用する必要がありますmanage.py

そして、これらのいずれかを実行するために使用するべきではありませんsudo

(また、INSTALLED_APPS がナンセンスに見えることに注意してください。そこには、まったくビジネスのない httplib2 や oauth2 などのプレーンな Python ライブラリがたくさん含まれています。)

編集済み

まず、質問を編集してトレースバックを追加する必要があります。

django.db.models次に、エラー メッセージは非常に明確です。accounts/models.py ファイルにインポートしていません。

第三に、Django 以外のライブラリを INSTALLED_APPS に含めることは依然としてナンセンスです。そうする必要はまったくありません。また、最初にデータストアを sudo で作成するべきではありません。削除して再作成するかchmod、通常のユーザーがアクセスできるようにするために使用してください。

于 2013-01-16T09:38:08.177 に答える
0

GAEのライブラリにPILを追加することで問題が解決されることがわかりました。pythonの画像ライブラリについて不平を言っていたので、yamlファイルが問題を解決します。django でサポートされているすべてのライブラリへのリンクはhttps://developers.google.com/appengine/docs/python/tools/libraries27であるため、必要なすべてのライブラリを .yaml ファイルと INSTALL_APP に追加します。

于 2013-01-18T06:50:01.067 に答える