强烈建议在Ubuntu环境下做odoo开发!!!windows的各种奇葩你懂的…
准备材料
ubuntu环境,根据上一篇U盘把Ubuntu安装到U盘完整教程
- vscode for Unbutu
- odoo source code
- python3.6.8
- docker
- postgreSQL10.0
- wkhtmltopdf
一、安装docekr
1. 检查环境,如把当前系统中的有旧版本,将它们删除,如当前是新系统可忽略这步:
$ sudo apt-get remove docker docker-engine docker.io containerd runc
2. 设置存储仓库:
2.1 更新apt源,并允许apt通过HTTPS使用库来安装包:
$ sudo apt-get update
$ sudo apt-get install \
apt-transport-https \
ca-certificates \
curl \
gnupg-agent \
software-properties-common
2.2 添加Docker的官方GPGkey:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
验证是否带有指纹密钥 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
,通过搜索密钥的后8位字符。
$ sudo apt-key fingerprint 0EBFCD88
// 打印如下信息则正常
pub rsa4096 2017-02-22 [SCEA]
9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid [ unknown] Docker Release (CE deb) <docker@docker.com>
sub rsa4096 2017-02-22 [S]
2.3 使用下面命令来设置稳定版的仓库,其中$(lsb_release -cs)
子命令返回您的Ubuntu的发行版本的名称如:xenial、bionic,你也可以填写你自己的版本,这里我们默认照抄:
$ sudo add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
3.安装Docker Engine
更新apt源索引,并安装Docker Engine,默认安装最新社区版本(CE):
$ sudo apt-get update
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
运行docker --version,查看是否安装成功:
$ docker --version
二、运行postgreSQL10.0数据库
直接从dockerhub把数据库镜像pull下来运行容器即可(此处我们增加映射宿主机端口):
$ docker pull postgrest:10
$ $ docker run -d -p 5430:5432 -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:10
然后查看容器db是否运行成功:
$ docker ps
三、安装python3.6.8
熟悉源码安装的小伙伴自行到官网下载python3.6.8的tar.gz包.
这里用最简单的apt安装,参考:
-
Ubuntu系统自带python2.7,可以查看:
$ python --version
-
更新apt源,并安装:
$ sudo add-apt-repository ppa:jonathonf/python-3.6 $ sudo apt-get update $ sudo apt-get install python3.6
-
安装好后系统中会有三个版本的python:2.7、3.5、3.6,避免每次使用3.6的版本都输入
python3.6
命令,要把python3.6设置为系统默认:$ ln -s /usr/local/python3.6/bin/python3.6 /usr/bin/python3.6 ##前面换成你的安装路径
检查一下版本:
$ python3 --version
四、安装VScode for Ubuntu
到微软官网下载deb包,直接点击安装即可:Visul Studio Code
五、下载odoo最新源码
到odoo的nightly网站下载最新版源码,解压倒目录
~/
下,修改目录名为:odoo13:
六、安装 wkhtmltopdf
下载对应的amd64版本,直接安装 下载地址
七、配置odoo项目的python env环境
可参考廖雪峰老师的教程:virtualenv
-
安装virtualenv:
$ sudo apt-get install python3-venv
-
进入odoo项目目录下,并创建env环境目录odooenv,激活环境:
$ cd ~/odoo13 $ python3 -m venv odooenv $ source odooenv/bin/activate
-
env环境激活后,会在shell命令行开头显示环境名称(odooenv),代表已激活;安装odoo项目依赖:
注意:一定要在odoo13的目录下操作,默认odooenv也是装在此目录下,此目录下有requirements.txt依赖文件,安装过程中可能有ERROR信息,详情google或百度解决。如:ERROR:** make sure the development packages of libxml2 and libxslt are installed ** ,执行:
$ sudo apt-get install python3 python-dev python3-dev \
build-essential libssl-dev libffi-dev \
libxml2-dev libxslt1-dev zlib1g-dev \
python-pip
如:python-ldap安装失败,执行:
sudo apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev
“error: command ‘x86_64-linux-gnu-gcc’ failed with exit status 1”:sudo apt-get install build-essential python3-dev libssl-dev libffi-dev libxml2 libxml2-dev libxslt1-dev zlib1g-dev
Failed building wheel for xxx :pip install wheel
然后再重新执行:
(odooenv) $ pip3 install -i https://pypi.douban.com/simple -r requirements.txt
八、配置VScode
-
打开vscode
-
File --> Open Folder 打开odoo13文件夹(目录)
-
打开__EXTENSIONS,搜索:python__ —> install 安装
-
配置settings.json、launch.json文件
//launch.json文件 { // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "odoo", "type": "python", "request": "launch", "program": "~/odoo13/odoo-bin", "pythonPath":"~/odoo13/odooenv/bin/python3", "args":[ "-i", "base", "-c", "~/odoo13/odoo.conf" ], "console": "integratedTerminal" }, ] }
//settings.json 文件 { "python.pythonPath": "odooenv/Scripts/python", "python.venvPath": "~/odoo13/odooenv" }
- 创建odoo.conf文件,这里的db信息都是上面运行postgres10容器时配置的端口、用户和密码:
[options] addons_path = ~/odoo13/odoo/addons db_host = localhost db_password = odoo db_port = 5432 db_user = odoo
-
进入setup目录下,复制odoo文件到odoo13目录,并修改名字为:odoo-bin
九、debug项目
方法一:项目配置好后我们之间运行debug,按__F5__
提示:VScode左下角会显示选择解释器(interpreter),也可以在这里选择运行项目的解释器
方法二:打开VScode 的terminal,然后cd到odoo13目录下,激活当前env环境,根据下面参数之间运行项目odoo-bin。
1、-i base:第一次启动初始化数据库,以后启动后可忽略。
2、
docke ps
检查一下确保你的数据库容器(db)是在运行中,并且是新的容器还未安装有其他odoo版本的数据库
$ cd ~/odoo13
$ source odooenv/bin/activate
(odooenv)$python3 odoo-bin -i base -c ~/odoo13/odoo.conf