这两天开始看《Odoo快速入门与实践 Python开发ERP指南》(刘金亮 2019年5月第1版 机械工业出版社)。试着在Ubuntu上安装Odoo,遇到很多问题,通过在网上查找,都已解决。这里把这些解决方法汇集了一下,一方面是整理一下自己的思路,另一方面也是希望能为遇到同样问题的朋友提供一个解决思路。
这本书中的环境是:Ubuntu 16,Python3.5。 我使用的环境为Ubuntu18,Python3.8
首先创建Python虚拟环境,这其中也遇到一些问题,但可以通过在网上查找资料解决,这里就不再赘述。
接着是更新依赖包,并使用git克隆Odoo源码。
1. 按照原书2.1.3节安装Odoo依赖包。首先激活虚拟环境,然后书中的代码安装依赖包:
1 $ sudo pip3 install Babel ……
注意:此命令安装的是所有依赖包的最新版本。
2. 安装PostgreSQL数据库
1 sudo apt-get install -y postgresql
安装完成后,创建数据库用户。特别注意,由于PostgreSQL数据库的用户与Ubuntu系统的用户一致(我自己理解),所以原书中在前面各步骤开始前创建了一个odoo的Ubuntu用户,并切换到odoo用户(即用odoo用户登录Ubuntu),之后的所有步骤都以odoo身份执行,所以此处创建的也是名为odoo的PostgreSQL数据库用户。但我没有注意到书中用户切换的操作,所以在创建数据库用户时,我以当前登录Ubuntu的用户名来创建数据库用户,后面的操作也是可以正常执行的。
一般来说,在Unix/Linux中,对于一些服务类大型应用(如数据库管理系统)都会创建对应的系统用户(如Oracle会创建Oracle的系统用户),对该用户充分授权,并在该用户下安装对应的应用,这样是基于权限和安全考虑。但现在是学习,也是可以使用一个用户来安装的。
3. 安装中文字体及报表打印需要的wkhtmltopdf
4. 启动Odoo服务
Odoo服务可正常启动,但在浏览器中访问时,先后出现以下问题:
错误:
TypeError: el is undefined
http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4729
追溯:
computeFloatOuterWidthWithMargins@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4729:90
_adapt@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:4728:477
later@http://192.168.*.*:8069/web/content/223-119b3fb/web.assets_common.js:142:255
错误:
TypeError: el is undefined
http://192.168.*.*:8069/web/static/src/js/core/dom.js:671
追溯:
computeFloatOuterWidthWithMargins@http://192.168.*.*:8069/web/static/src/js/core/dom.js:671:24
_adapt@http://192.168.*.*:8069/web/static/src/js/core/dom.js:660:35
later@http://192.168.*.*:8069/web/static/lib/underscore/underscore.js:821:25
在StoackOverflow上找到一个解决方案:sudo pip3 install - r requirement.txt,于是按照执行,但安装过程中报了一堆错误,主要有两个方面:
1) 在requirement.txt文件中依赖包指定的版本与前面原书中指定的Odoo依赖包的版本有冲突,后者的版本高于前者;
2)关于psycopg2包的安装报错
解决:
对于1)中的错误,我的做法是将requirement.txt中包的版本指定为最新版本号(要注意安装条件中对环境的指定)
对于2)中的错误,按网上查到的解决方法,安装psycopg2-binary。
通过上面的措施,解决问题,再次启动Odoo服务,在浏览器中可以正常显示了。
手机扫一扫
移动阅读更方便
你可能感兴趣的文章