• Django WSGI Error:class.__dict__ not accessible in restricted mode


    一、问题

    今天网站出了一个错误:

    RuntimeError at /index.html

    class.__dict__ not accessible in restricted mode

    二、原因

    用了两次WSGIScriptAlias,类似于:

    WSGIScriptAlias /my_app /home/myuser/myapp/wsgi_scripts/deployment.wsgi

    WSGIScriptAlias /my_app_demo /home/myuser/myapp/wsgi_scripts/deployment.wsgi

    导致运行时报错:RuntimeError: class.__dict__ not accessible in restricted mode

    有两个程序都要用相同的资源,先运行的程序占用了必要资源,导致随后的程序拿不到资源而报错。

    我的情况是因为给同一个app配置两个域名,用了两个<VirtualHost>,同样就用了两次WSGIScriptAlias。

    三、解决办法

    在apache2的配置里加一个配置项(在虚拟主机配置之前添加)

    WSGIApplicationGroup %{GLOBAL}

    然后重启apache服务。

    原因是一般情况,一个wsgi app可以运行在单独的python解释器里。所以使用WSGIApplicationGroup直接告诉mod_wsgi不要使用单独的python解释器,直接在同一个全局的解释器里交互。

    四、参考

    http://www.mediacore.com/blog/hosting-multiple-wsgi-applications-with-apache

    mod_wsgi 流程简单分析: 一个嵌入python的例子

    https://github.com/nkchenz/ajourneyintopythonsource/blob/master/100.rst

    部署django

    http://djangobook.py3k.cn/2.0/chapter12/

    ps:时隔四个月,今天又遇到了同样的问题,居然是通过google找到了我的这篇文章解决了问题^_^【2015/8/24】

    本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/4443342.html有问题欢迎与我讨论,共同进步。

  • 相关阅读:
    app-授权登录插件配置
    微信公众号-公众号设置-功能设置
    Java变量
    Java数据类型
    计算机存储单元
    Java常量
    k8s
    第一个Java程序
    旋转木马
    tools
  • 原文地址:https://www.cnblogs.com/starof/p/4443342.html
Copyright © 2020-2023  润新知