Python 使用Django的AppEngine应用程序无法加载

Python 使用Django的AppEngine应用程序无法加载,python,django,google-app-engine,python-2.7,Python,Django,Google App Engine,Python 2.7,Django不断导致我们的应用程序崩溃。部署后,应用程序运行正常,但一旦重新启动/关闭初始实例,它通常无法启动,并出现类似以下错误: 这是我们当前的appengine_config.py: import sys import logging logging.debug(",\n".join(sys.path)) # Since Google App Engine's webapp framework uses Django templates, Django will half-init

Django不断导致我们的应用程序崩溃。部署后,应用程序运行正常,但一旦重新启动/关闭初始实例,它通常无法启动,并出现类似以下错误:

这是我们当前的appengine_config.py:


import sys
import logging

logging.debug(",\n".join(sys.path))

# Since Google App Engine's webapp framework uses Django templates, Django will half-initialize when webapp is loaded.
# This causes the initialization of the rest of Django's setting to be skipped. If you are getting this error, you need
# to explicitly force Django to reload your settings:

from django.conf import settings
settings._target = None
从appengine_config.py记录sys.path不会在成功实例启动和失败实例启动之间改变(当然除了XXXXXXXXXX位):


正如人们在你的问题评论中提到的,这似乎是一个与路径相关的问题

可能的短视解决方案手动将所有内容添加到路径中-请查看此处的顶部答案: 至少,这将有助于将问题缩小到与路径相关的范围

医生说:

Python模块include路径包含应用程序的根目录 目录(包含app.yaml文件的目录)。模块你 可以使用路径在应用程序的根目录中创建 从根本上说。不要忘记在中创建init.py文件 子目录,因此Python将子目录识别为 包裹

因此,从我所知道的,b/c所有内容都位于app.yaml文件或以下。在您的问题中,路径应该已经正确

  • 仔细检查所有
    \uuuu init\uuuuu.py
    文件是否到位,拼写是否正确
  • 尝试删除所有
    *.pyc
    文件并重新生成它们
  • 尝试从容器的文件夹名称
    文件夹导入,其中包含\u YAML.myfolder.middleware

  • 将以下行添加到app.yaml

    图书馆: -名称:MySQLdb 版本:“最新”

    它在这里的文档中。

    理想情况下,应将其记录在GCM DJANGO指南中。会节省我很多时间


    Praveen

    检查实例启动请求中是否出现DeadLineExceeDerror。如果您未使用预热请求,则导入失败的部分启动实例在稍后收到请求时可能会显示奇怪的导入错误。我们没有收到它。它开始得很快(实际上失败得很快)。你说的快速失败是什么意思?在你最初的帖子中,你说实例可以在失败之前运行一天。我认为你需要详细说明这一点“有时模块会在再次崩溃之前保持一整天。加载失败后,所有后续请求都会失败,并出现相同的错误。“你说的“再次崩溃”是什么意思?你可以在appengine_config.py中记录sys.path,它将始终在你的任何请求之前运行。这可能会帮助你了解发生了什么。此外,你可以在app.handler周围包装一个try/except块,并在那里执行日志记录。Thaks很多。删除
    *.pyc
    文件有帮助。
    
    |- app.yaml
    |- _ _ init _ _.py
    |- settings.py
    |- myfolder |
    |           |- _ _ init _ _.py
    |           |- middleware.py
    |           |- ...
    |-...
    |
    
    
    application: XXXXX
    module: app
    version: master
    runtime: python27
    api_version: 1
    threadsafe: true

    handlers: - url: /api/(login|logout|passwd|master.|banners.) script: app.handler secure: always ...

    builtins: - django_wsgi: on

    libraries: - name: django version: 1.5

    env_variables: DJANGO_SETTINGS_MODULE: 'settings'
    
    Traceback (most recent call last):
      File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 266, in Handle
        result = handler(dict(self._environ), self._StartResponse)
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/core/handlers/wsgi.py", line 236, in __call__
        self.load_middleware()
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/core/handlers/base.py", line 45, in load_middleware
        for middleware_path in settings.MIDDLEWARE_CLASSES:
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/conf/__init__.py", line 53, in __getattr__
        self._setup(name)
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/conf/__init__.py", line 48, in _setup
        self._wrapped = Settings(settings_module)
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/conf/__init__.py", line 134, in __init__
        raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
    ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named myfolder.settings
    
    
    Traceback (most recent call last):
      File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/runtime/wsgi.py", line 239, in Handle
        handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
      File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/lib_config.py", line 353, in __getattr__
        self._update_configs()
      File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/lib_config.py", line 289, in _update_configs
        self._registry.initialize()
      File "/base/data/home/runtimes/python27/python27_lib/versions/1/google/appengine/api/lib_config.py", line 164, in initialize
        import_func(self._modname)
      File "/base/data/home/apps/s~blue-myapp/app:master.375531077560785947/appengine_config.py", line 17, in 
        settings._target = None
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/utils/functional.py", line 227, in __setattr__
        self._setup()
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/conf/__init__.py", line 48, in _setup
        self._wrapped = Settings(settings_module)
      File "/base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5/django/conf/__init__.py", line 134, in __init__
        raise ImportError("Could not import settings '%s' (Is it on sys.path?): %s" % (self.SETTINGS_MODULE, e))
    ImportError: Could not import settings 'settings' (Is it on sys.path?): No module named myfolder.settings
    
    
    import sys
    import logging
    
    logging.debug(",\n".join(sys.path))
    
    # Since Google App Engine's webapp framework uses Django templates, Django will half-initialize when webapp is loaded.
    # This causes the initialization of the rest of Django's setting to be skipped. If you are getting this error, you need
    # to explicitly force Django to reload your settings:
    
    from django.conf import settings
    settings._target = None
    
    
    /base/data/home/apps/s~blue-persomi/app:master.3759720XXXXXXXXXXX,
    /base/data/home/runtimes/python27/python27_dist/lib/python27.zip,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7/plat-linux2,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7/lib-tk,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7/lib-old,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7/lib-dynload,
    /base/data/home/runtimes/python27/python27_dist/lib/python2.7/site-packages,
    /base/data/home/runtimes/python27/python27_lib/versions/1,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/MySQLdb-1.2.4b4,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/django-1.5,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/protorpc-1.0,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/webapp2-2.5.2,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/webob-1.1.1,
    /base/data/home/runtimes/python27/python27_lib/versions/third_party/yaml-3.10