새로운 Python 2.7 런타임을 threadsafe 모드로 사용하고 JinJ2 1.6.0 시험판 SDK를 사용하여 Pyramid를 실행하려고합니다. here으로 앱을 수정했습니다. 즉, runtime: python27
, threadsafe: true
을 app.yaml
에 설정하고 main()
기능을 제거했습니다. 나 자신에 의해 응답을 생성 할 때 잘 작동,하지만 난 방정식에 jinja2을 가지고하려고 할 때, 나는 다음과 같은 예외 얻을 :이 문제를 해결하기 위해 pyramid_jinja2 코드 조각 주위에 엉망으로 시도pyramid + jinja2 및 새로운 GAE 런타임
ERROR 2011-11-07 00:10:34,356 wsgi.py:170]
Traceback (most recent call last):
File "/gae/google/appengine/runtime/wsgi.py", line 168, in Handle
[...]
File "/myapp/source/myapp-tip/main.py", line 29, in <module>
config.include('pyramid_jinja2')
File "/myapp/source/myapp-tip/lib/dist/pyramid/config/__init__.py", line 616, in include
c(configurator)
File "lib/dist/pyramid_jinja2/__init__.py", line 390, in includeme
_get_or_build_default_environment(config.registry)
File "/lib/dist/pyramid_jinja2/__init__.py", line 217, in _get_or_build_default_environment
_setup_environment(registry)
File "/lib/dist/pyramid_jinja2/__init__.py", line 253, in _setup_environment
package = _caller_package(('pyramid_jinja2', 'jinja2', 'pyramid.config'))
File "/lib/dist/pyramid_jinja2/__init__.py", line 136, in caller_package
for t in self.inspect.stack():
File "/usr/lib/python2.7/inspect.py", line 1056, in stack
return getouterframes(sys._getframe(1), context)
File "/usr/lib/python2.7/inspect.py", line 1034, in getouterframes
framelist.append((frame,) + getframeinfo(frame, context))
File "/usr/lib/python2.7/inspect.py", line 1009, in getframeinfo
lines, lnum = findsource(frame)
File "/usr/lib/python2.7/inspect.py", line 534, in findsource
module = getmodule(object, file)
File "/usr/lib/python2.7/inspect.py", line 506, in getmodule
main = sys.modules['__main__']
KeyError: '__main__'
을, 단지 다른 예외로 남아있을 수 있습니다 : 아무도 후드 일을하려고 무엇 피라미드에 도움이 되거 수 있다면
ERROR 2011-11-04 12:06:38,720 wsgi.py:170]
Traceback (most recent call last):
File "/gae/google/appengine/runtime/wsgi.py", line 168, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
[...]
File "/myapp/source/myapp-tip/main.py", line 29, in <module>
config.add_jinja2_search_path("templates")
File "/myapp/source/myapp-tip/lib/dist/pyramid/config/util.py", line 28, in wrapper
result = wrapped(self, *arg, **kw)
File "/lib/dist/pyramid_jinja2/__init__.py", line 311, in add_jinja2_search_path
env.loader.searchpath.append(abspath_from_resource_spec(d))
File "/myapp/source/myapp-tip/lib/dist/pyramid/asset.py", line 38, in abspath_from_asset_spec
return pkg_resources.resource_filename(pname, filename)
File "/myapp/source/myapp-tip/pkg_resources.py", line 840, in resource_filename
return get_provider(package_or_requirement).get_resource_filename(
File "/myapp/source/myapp-tip/pkg_resources.py", line 160, in get_provider
__import__(moduleOrReq)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 640, in Decorate
return func(self, *args, **kwargs)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 1756, in load_module
return self.FindAndLoadModule(submodule, fullname, search_path)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 640, in Decorate
return func(self, *args, **kwargs)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 1628, in FindAndLoadModule
description)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 640, in Decorate
return func(self, *args, **kwargs)
File "/gae/google/appengine/tools/dev_appserver_import_hook.py", line 1571, in LoadModuleRestricted
description)
ImportError: Cannot re-init internal module __main__
나는 행복 할 것입니다. 후자의 스택 추적에 따르면 자산을 해결하려고 시도하는 것 같지만 왜 다시로드하려고합니까? __main__
? 나는 심지어 내 문제가 피라미드 나 GAE에 의한 것인지 확신하지 못한다.
이 문제에 대한 통찰력을 주셔서 감사합니다.
교체 가져 오기 시스템이 dev_appserver에 특정 앞에 다음 코드를 추가 init__.py. –
이것이 사실이라면 "import pyramid_jinja2; config.include (pyramid_jinja2)"를 시도해보십시오 (모듈 이름에 문자열을 전달하는 대신 모듈 자체를 전달하십시오). –
불행히도 도움이되지 않았습니다. 똑같은 동작을 얻습니다. – Docent