如何在Odoo8中修复KeyError:'web'?

时间:2016-09-19 09:15:11

标签: python python-2.7 nginx odoo-8 odoo

我已经安装了Odoo8并且它正在运行Nginx。

当我访问应该运行Odoo的URL时,我只看到没有菜单的黑色顶部栏,页面的其余部分为空。

日志吐出此错误:

  

Traceback(最近一次调用最后一次):文件   “/opt/odoo/odoo_8/src/OCA/OCB/openerp/http.py”,第544行,   _handle_exception       return super(JsonRequest,self)._ handle_exception(exception)File“/opt/odoo/odoo_8/src/OCA/OCB/openerp/http.py”,第581行,in   调度       result = self._call_function(** self.params)文件“/opt/odoo/odoo_8/src/OCA/OCB/openerp/http.py”,第318行,   _call_function       返回self.endpoint(* args,** kwargs)文件“/opt/odoo/odoo_8/src/OCA/OCB/openerp/http.py”,第810行,调用       return self.method(* args,** kw)文件“/opt/odoo/odoo_8/src/OCA/OCB/openerp/http.py”,第410行,   response_wrap       response = f(* args,** kw)文件“/opt/odoo/odoo_8/src/linked-addons/web/controllers/main.py”,行   591,在bootstrap_translations中       如果http.addons_manifest [addon_name] .get('bootstrap'):KeyError:'web'

我检查了我在上述路径中有模块网络,具有正确的权限和正确的所有者。我无法找到解决这个问题的方法。

任何人都遇到过同样的情况?我认为这可能是Nginx的一个问题(因为最近我在不同的服务器上安装了几个Odoo 8,并且在每个服务器上执行完全相同的步骤,但其他服务器没有使用Nginx)。

我在这里粘贴了Odoo的Nginx站点的配置:

server_tokens off;

server {
    server_name my.server.name.com;

    large_client_header_buffers 16 8m;
    client_max_body_size        200m;

    location / {
      proxy_pass            http://127.0.0.1:8069;
      proxy_buffers         16 8m;
      proxy_buffer_size     8m;
      proxy_set_header      X-Forwarded-Host  $host;
      proxy_set_header      X-Real-IP $http_x_real_ip;
      proxy_set_header      X-Forwarded-Proto https;
      proxy_connect_timeout 600;
      proxy_send_timeout    600;
      proxy_read_timeout    600;
      send_timeout          600;

      location ~ ^/(.*)/static/(.*) {
        alias /opt/odoo/odoo_8/src/linked-addons/$1/static/$2;

        expires +30d;
        access_log    off;
        log_not_found off;
      }
    }
}

任何建议或想法都将受到赞赏。

2 个答案:

答案 0 :(得分:1)

嗯,我不知道为什么,但它是固定的。我做了什么:

  1. 我删除了从GitHub下载的所有Odoo模块。
  2. 我再次下载(就像我第一次那样)。
  3. 我重启了Odoo服务。
  4. 这次我得到两个错误而不是一个错误。一个是 KeyError:' web' ,就像之前一样,另一个是要求 Wand 包。
  5. 我安装了魔杖iterator()
  6. 刷新后,同样的情况,两个错误,但这次是另一个要求 MagickWand
  7. 我安装了它:pip install Wand
  8. 再刷新两次错误后,这次Odoo要求 pycoda
  9. 我安装了 pycoda apt-get install libmagickwand-dev
  10. 我重新启动了Nginx和Odoo服务,以防万一,并且它有效。没有更多的错误。
  11. 我无法解释为什么日志没有告诉我有关第一次安装中其他错误的任何信息,而且它只注意到我pip install pycoda

答案 1 :(得分:0)

该错误在所有版本的 Odoo 上都相同,并且此错误通常会跟随一些其他错误。 从上到下修正错误很重要。

该错误与损坏、丢失或过时的 Python 模块有关。

查看您的 Odoo 日志,看看是否有任何导入错误...

...
  File "/path/to/file.py", line 1, in <module>
    from x import y
ImportError: cannot import etc...

现在只需确保您安装或更新有问题的导入。

pip install y
pip install --upgrade y

然后重新启动您的 Odoo 实例或 docker 容器并重试。