这两天开始看《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服务,在浏览器中可以正常显示了。

在Ubuntu上安装Odoo时遇到的问题的更多相关文章

  1. ubuntu上安装adt时无法在线安装的问题

    安装了新的ubuntu系统之后,就得重新布置android开发环境了. 找了网上的教程,一步一步做,到了在eclipse上在线下载adt总是出现 Unable to connect to reposi ...

  2. ubuntu上安装Eclipse时遇到的一个错误

    A Java Runtime Environment (JRE) or Java Development Kit (JDK)must be available in order to run Ecli ...

  3. 在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误

    在阿里云的ubuntu服务器上安装xampp时出现unable to realloc unable to realloc 8380000 bytes错误 解决:增加Swap空间(阿里云缺省没有分配任何 ...

  4. Ubuntu上安装MongoDB(译)

    add by zhj:直接从第四步开始就可以了,而且安装好MongoDB后会自动启动的,不必自己去执行启动命令 原文:https://docs.mongodb.com/manual/tutorial/ ...

  5. ubuntu上安装mysql 编译安装

    为什么要折腾?首先说明的是ubuntu上安装mysql等软件是非常容易简单的,其简单的程度盖过windows上的安装,一句sudo apt-get install就可以搞定.如果想用最简便的方法安装m ...

  6. Ubuntu上安装和使用SSH,Xming+PuTTY在Windows下远程Linux主机使用图形界面的程序

    自:http://blog.csdn.net/neofung/article/details/6574002 Ubuntu上安装和使用SSH  网上有很多介绍在Ubuntu下开启SSH服务的文章,但大 ...

  7. 【转载】如何在Ubuntu上安装LAMP服务器系统?

    转载自:http://os.51cto.com/art/201307/405333.htm [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时 ...

  8. [转载]如何在Ubuntu上安装LAMP服务器系统

    [2013年7月25日 51CTO外电头条]为何应该在Ubuntu上安装LAMP服务器?从事Web开发工作时,我更偏爱在不受干扰的情况下,在我那台计算机上的开发环境下进行开发.我宁愿所犯的错误大部分是 ...

  9. Ubuntu 上安装 Freemind 并支持中文

    Ubuntu 上安装 Freemind 并支持中文 JAVA 运行时 Freemind 是一个使用 Java 编写的思维导图工具,在安装时,需要到 Java 运行时(使用 OpenJRE 或 Orac ...

随机推荐

  1. API概述,使用步骤和Scanner概述及其API文档的使用

    API概述 API(Application Programming Interface),应用程序编程接口.Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档.这些类将底 ...

  2. jupyter 反向代理配置

    抓了下包,看了一下WS连不上,参考这个,问题解决 location / { proxy_pass http://127.0.0.1:8813/; # JUPYTER_PORT 为 Jupyter 运行 ...

  3. Idea Maven调试properties 找不到报错

    问题:maven执行package命令打包时,src/main/java路径下的properties文件偶尔丢失 解决方式:pom.xml中加入resources配置 <build> &l ...

  4. 迷宫类dp整合

    这是迷宫类dp我自己取的名字,通常比较简单,上货 简单模型 数字三角形 状态表示:f[i][j]表示起点第\(i\)行第\(j\)个数最短路径的长度 状态转移:\(f[i][j] = max(f[i ...

  5. Nginx 的基本概念

    Nginx 简介 什么是 Nginx Nginx 是一个高性能的 HTTP 和 反向代理 web服务器 占用内存少,并发能力强,高性能,热部署 但不支持 Java,Java 得配合 tomcat 使用 ...

  6. 使min-height子元素height百分比生效的2种方式

    方式1,使用flex <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...

  7. Java开发学习(十七)----AOP案例之测量业务层接口执行效率

    一.需求分析 这个需求比较简单 需求:任意业务层接口执行均可显示其执行效率(执行时长) 这个的目的是查看每个业务层执行的时间,这样就可以监控出哪个业务比较耗时,将其查找出来方便优化. 具体实现的思路: ...

  8. 手动从0搭建ABP框架-ABP官方完整解决方案和手动搭建简化解决方案实践

      本文主要讲解了如何把ABP官方的在线生成解决方案运行起来,并说明了解决方案中项目间的依赖关系.然后手动实践了如何从0搭建了一个简化的解决方案.ABP官方的在线生成解决方案源码下载参考[3],手动搭 ...

  9. Python3+Django2集成PayPal(贝宝)跨境支付三方接口以及订单查询和退款业务

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_157 如果您所在的公司涉及外贸或者跨境支付业务,那一定听说过大名鼎鼎的PayPal,总的来说,PayPal在跨国贸易里的优势还是比 ...

  10. Vue ref属性 && props配置项

    1 // # ref属性: 2 // # 1.用来给元素或者子组件注册引用信息(id的替代者) 3 // # 2.应用在html标签上获取的是真实的DOM元素,应用在组件标签上是组件实例对象(vc) ...