源码安装 Odoo

为便于管理,我们将在家目录下创建一个/odoo-dev 目录作为工作目录。在本系列文章中我们均假设 Odoo 安装在/odoo-dev 目录下。
Odoo 使用的是 Python 3(3.5 或之后的版本),那么在命令行中我们将不再使用 python 和pip,而是用 python3 和 pip3。
“ 注意: Odoo 11 的修改从版本 11 开始, Odoo 运行在 Python 3.5 及以后的版本上, Odoo 11 依然支持 Python2.7,但 Odoo12 仅能运行在 Python 3.5+的环境中。 Odoo 10 及之前的版本仅可运行在Python 2.7 上。 ”要从源码安装 Odoo,我们首先要从 GitHub 上克隆一套 Odoo 源代码:

mkdir ~/odoo-dev # 创建工作目录
cd ~/odoo-dev # 进入工作目录
git clone https://github.com/odoo/odoo.git -b 12.0 --depth=1 # 获取 Odoo 源码

~是当前用户的 Linux 工作目录的简写,比如/home/oscg。如果使用 WSL Windows 子系统,家目录存放在一个 Windows 系统文件夹中一个不易于发现的地方。避免这一情况的一个方法是把工作文件放在常用的文件夹下,然后在子系统中使用软链接(类似 Windows 中的快捷方式)。比如 mkdir /mnt/c/Users/Public/odoo-dev 创建C:\Users\Public\odoo-dev 工作目录,然后 ln -s /mnt/c/Users/Public/odoo-dev ~/odoodev 创建~/odoo-dev Linux 目录,实际上是 Windows 目录的链接。在就可以使用~/odoodev 运行所有的命令,比如前述的 git clone,文件将存放在 C:\Users\Public\odoo-dev 下。Git 命令中的-b 12.0 明确表明要下载 Odoo 12.0 分支,在写本文时,这显得有些多余,因为这正是当前默认的分支。 –depth=1 表示仅下载当前修订版本,而不是所有历史修改记录,这会使下载更快、内容更少。
“ 小贴士: 如需在后续下载历史提交内容,可以运行 git fetch – -unshallow”在运行 Odoo 之前,应安装 requirements.txt 中所声明的 Python 依赖:

pip3 install -r ~/odoo-dev/odoo/requirements.txt

补充: 安装时如因 requirements.txt 指定了 Babel==2.3.4 而报错,请修改 Babel==2.3.4 为
Babel 或 Babel>=2.3.4 后再重新执行以上命令;另内存过小也可能导致不易察觉报错,测试时1G 内存报错,调整为 2G 后正常安装这其中的很多依赖都可以通过 Debian 包安装, 如 python3-lxml,所以使用 apt 包管理器是一个有效的替代方案。这样的优势是在必要时可以自动安装系统依赖,使用的依赖列表可以在./odoo/debian/control 中找到。还有一些 requirements.txt 中未包含的 Python 包,亦可安装来避免警告或用于开启额外的功能:

pip3 install num2words phonenumbers psycopg2-binary watchdog xlwt

“ 小贴士: pip3 工具可以通过好几种方式安装:系统包的方式和原生 Python 的方式。如果pip3 报了 import error,在系统中重新安装或能解决问题。对应的命令为 sudo python3 -m pip
uninstall pip && sudo apt install python3-pip –reinstall”现在,通过如下命令可启动 Odoo 实例:

~/odoo-dev/odoo/odoo-bin

如需停止服务并回到命令行,按下 Ctrl + C。
“ 小贴士: Odoo10 中的修改现在启动 Odoo 的脚本是./odoo-bin,而之前的 Odoo 版本中为./odoo.py”
默认 Odoo 实例监听 8069 端口,所以在浏览器中访问 http://:8069 就可以访问到 Odoo 实例。对于开发者来说,我们会需要使用到多个数据库,所以在命令行中创建会更为方便,后面会介绍如何实现。现在在命令行终端中按下 Ctrl + C 停止 Odoo 服务并回到命令行。