金字塔应用程序将RuntimeError: class.__dict__ not accessible in restricted mode
抛出到python2.7/site-packages/zope/interface/declarations.py
,同时通过uwsgi从nginx获取请求。在这种情况下使用uwsgi挂载点配置。没有挂载点 - 没有错误。
基于nginx + uwsgi + pyramid + supervisor进行以下配置:
Pyramid配置ini文件:
[uwsgi]
socket = PATH_TO_SOCK
virtualenv = PATH_TO_VIRTUALENV
module = MODULE_NAME
mount = /URL_SUB_PATH=MODULE_NAME/uwsgiapp.py
manage-script-name = true
env = PASTE_CONFIG=%p
uwsgi.py:
from paste.deploy import loadapp
app = loadapp('config:' + os.environ['PASTE_CONFIG'])
def application(environ, start_response):
if os.environ.get('WSGI_FILE_WRAPPER', 'yes').lower() in ('no', 'false'):
environ.pop('wsgi.file_wrapper', None)
return app(environ, start_response)
从supervisor.conf运行的命令:
command=PATH_TO_VIRTUALENV/bin/uwsgi --ini-paste PATH_TO_PYRAMID_CONF_INI
和nginx config的片段:
upstream UPSTREAM_NAME {
server unix:///PATH_TO_SOCK;
}
location /URL_SUB_PATH/ {
uwsgi_pass UPSTREAM_NAME;
include uwsgi_params;
}
这种意外行为的原因是什么?