odoo12从零开始:一、安装odoo运行环境(mac)
写在前面:
接触odoo已经两年多了,在大学做课程设计的时候,无意间了解到odoo这个erp框架,当时的odoo在国内还默默无闻,我也不曾想过自己毕业后会从事到odoo框架的相关开发工作中来。两年多的时间里,我见证了它在国内的发展,也随着工作经验的积累,对odoo已经有了一定的了解,在这里,我希望能分享自己两年多来学习到的一些知识和经验,也希望有可能吸引到更多的朋友加入到odoo的开发中来。
根据初步的想法,文章将会包含odoo开发环境的搭建(Mac),个性化,ORM模块,controller,视图、模板、记录以及其继承机制,widget,权限,打印模板,报表,部署,源码分析等部分。关于更新时间,由于本人家境贫寒,每日上下班通勤时间高达三个小时,工作日能抽出的时间比较有限,主要将在周末更新。给自己定一个小目标,每周至少更新两到三篇文章。

在Mac Os上安装odoo12开发环境
我们将要安装的软件包:
1)、git: 代码管理
2)、postgres: odoo12运行所需要的数据库
3)、docker: 用于构建postgres容器,pgadmin4容器
4)、>=python3.5: odoo12运行的python环境
4)、odoo requirements: 运行odoo需要的python依赖包
项目代码:
git clone -b v1.0 https://github.com/lingjiawen/odoo_project.git
1、安装homebrew
打开终端,输入:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
2、安装git
brew install git
安装完成后,查看git版本检查是否安装成功:

3、安装python3
最新款的mac已经自己安装python2.7 和 python3.7,检查运行版本:

如果没有,使用homebrew进行安装(homebrew安装python3会自动安装pip3):
brew install python3
4、安装python虚拟环境
pip3 install virtualenv
查看是否安装成功:

创建python3虚拟环境到用户目录并激活:
virtualenv -p python3 ~/odoo12_project #创建虚拟环境
source ~/odoo12_project/bin/active #激活虚拟环境

5、拉取代码并安装依赖:
mkdir -pv ~/code/odoo_project # 建立工作目录
cd ~/code/odoo_project # 进入工作目录
git clone -b 12.0 https://github.com/odoo/odoo.git
安装所需依赖:
brew install freetype jpeg libpng libtiff xz webp
brew install node # 安装node
npm install -g less less-plugin-clean-css #使用node安装依赖
# 完成后进入odoo12目录
cd odoo12
pip3 install -r requirements.txt # 安装requirements
安装pgcopy2可能会出现如下报错:

可能的解决方法:
方法1:
pip3 uninstall psycopg2
pip3 list --outdated
pip3 install --upgrade wheel
pip3 install --upgrade setuptools
pip3 install psycopg2
方法2:
xcode-select --install
如果上述两种方法无法解决,那么尝试下列办法:
vim requirements.txt # 编辑文件
# 找到psycopg2
# 在前面添加'#'注释
# 保存退出
pip3 install psycopg2-binary==2.8. # 手动安装
# 重新安装requirements
pip3 install -r requirements.txt
6、安装docker
直接访问官网hub登录下载docker桌面版并运行: https://hub.docker.com/editions/community/docker-ce-desktop-mac

查看docker和docker-compose版本:

7、使用docker安装postgres数据库
docker pull postgres:10
docker pull dpage/pgadmin4
进入项目路径,创建db运行的docker-compose文件:
cd ~/code/odoo12_project/
touch docker-compose_db.yaml
vim docker-compose_db.yaml
文件如下:
version: '2'
services:
postgres_10_db:
image: postgres:10
container_name: postgres_10_db
environment:
- POSTGRES_USER=odoo12
- POSTGRES_PASSWORD=odoo12
- POSTGRES_DB=postgres
- PGDATA=/var/lib/postgresql/data/pgdata
volumes:
- postgres_10_db_volume:/var/lib/postgresql/data/pgdata
ports:
- "5432:5432"
network_mode: bridge volumes:
postgres_10_db_volume:
external: true
创建容器Volume并运行:
docker volume create --name=postgres_10_db_volume
docker-compose -f docker-compose_db.yaml up -d # 守护态运行
# 运行pgadmin, 账号密码请自己设置
docker run -p : \
-e “PGADMIN_DEFAULT_EMAIL=sysadmin" \
-e “PGADMIN_DEFAULT_PASSWORD=sysadmin" \
-d dpage/pgadmin4
查看运行状态:

我们已经注意到数据库已经运行,端口为5432,pgadmin运行端口为8888,在浏览器输入localhost:8888访问pgadmin:

8、使用pycharm运行odoo12:
1)打开pycharm(如没有pycharm请自行下载安装,不再赘述),打开项目,如图:

2)设置虚拟环境运行:
左上角点开pycharm->preferences->project->project interpreter->setting->add:

3)选择existing environment,路径选择刚刚创建的odoo12_project/bin.python,点击ok。

4)添加启动文件:
在目录下新建config目录,在config目录下新建odoo.conf文件:
[options]
addons_path = ~/code/odoo12_project/odoo12/odoo/addons,~/code/odoo12_project/odoo12/addons
; admin_passwd = admin
; csv_internal_sep = ,
db_host = 0.0.0.0
db_password = odoo12
db_user = odoo12
db_port =
; db_maxconn =
; db_name = False
; db_template = template1
; dbfilter = .*
; debug_mode = False
; email_from = False
; limit_memory_hard =
; limit_memory_soft =
; limit_request =
;limit_time_cpu =
;limit_time_real =
; list_db = True
; log_db = False
; log_handler = [':INFO']
; log_level = info
; logfile = None
; longpolling_port =
; max_cron_threads =
; osv_memory_age_limit = 1.0
; osv_memory_count_limit = False
; smtp_password = False
; smtp_port =
; smtp_server = localhost
; smtp_ssl = False
; smtp_user = False
; workers =
; xmlrpc = True
; xmlrpc_interface =
; xmlrpc_port =
; xmlrpcs = True
; xmlrpcs_interface =
; xmlrpcs_port =
在主目录下新建启动文件set-up,并添加以下内容:
#!/usr/bin/env python3 # set server timezone in UTC before time module imported
import os
import sys
__import__('os').environ['TZ'] = 'UTC' LIB_PATH = os.path.join(os.path.split(os.path.realpath(__file__))[0], '.', 'odoo12')
sys.path.append(LIB_PATH) import odoo if __name__ == "__main__":
odoo.cli.main()
最后目录结构如下:

5)pycharm添加配置文件:


Script path: 选择刚才建立的set-up文件;
Parameters:指定定配置文件,-c config/odoo.conf ;
Python interpreter:选择刚才配置的虚拟环境;
6)点击运行按钮,我们可以看到odoo12已经在8069端口运行:

7)使用浏览器访问localhost:8069查看效果:

Tips:下一篇文章将为大家带来包含数据库创建页面的优化。
odoo12从零开始:一、安装odoo运行环境(mac)的更多相关文章
- odoo12从零开始:一、安装odoo运行环境(windows10)
前言 鉴于好多朋友说没有mac电脑,windows开发其实也差不了多远,只是个人习惯问题,而且吧,windows的电脑其实配环境也挺快的其实,我在这里再稍微补一个比较简单的windows环境部署,希望 ...
- Python 2/3 安装与运行环境设置
Python 2/3 安装与运行环境设置: 1.Python 软件源:https://www.python.org/ 下载Win版本 https://www.python.org/downloa ...
- Linux环境安装.NET运行环境
Linux环境安装.NET运行环境 Linux环境安装.NET运行环境 1. 构建编译环境: (1) sudo apt-get install build-essential (2) sudo apt ...
- 阿里云服务器ubuntu安装java运行环境
服务器 阿里云服务器ubuntu安装java运行环境 转:http://www.codingyun.com/article/45.html 今天来给大家介绍一下在阿里云ubuntu服务器下安装java ...
- 图文详解安装PHP运行环境
一.什么是PHP运行环境 能够理解人与计算机交流时语言软件,通常指解释PHP编程语言的软件. 例如: PHP(代码) 需要PHP超文本预编译器(软件). Java需要JVM虚拟机 二.安装PHP运行环 ...
- 小记LoadRunner 11 安装VC2005运行环境报错处理
这几天在做性能优化,需要在虚拟机里装个LoadRunner 11.从测试同学那里搞来安装包,按照文档提示安装系统运行环境,提示我要装VC2005 SP1. 安装程序自己安装,报错.截图如下. 于是我又 ...
- 04 Windows安装python运行环境
安装python运行环境 使用微信扫码关注微信公众号,并回复:"Python工具包",免费获取下载链接! 1.卸载程序(电脑未装此程序,跳过此过程) 卸载这两个程序 出现下图所示, ...
- 如何在Mac OS X上安装 Ruby运行环境
对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 首先确定操 ...
- Mac OS X上安装 Ruby运行环境
环境 对于新入门的开发者,如何安装 Ruby和Ruby Gems 的运行环境可能会是个问题,本页主要介绍如何用一条靠谱的路子快速安装 Ruby 开发环境.此安装方法同样适用于产品环境! 系统需求 ...
随机推荐
- JSP一二章笔试题
一. 什么是B/S架构,什么是C/S架构B/S(Browser/Server) 浏览器/服务器 C/S(Client/Server) 客户端/服务器 二. B/S架构的工作原理 浏览器请求服务器 通过 ...
- H5 video自定义视频控件
1.自定义效果截图 2.效果源码 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"& ...
- 【iOS】NSLog 打印 BOOL 类型值
这个问题以前没在意,刚偶然打印,发现有些问题,上网查了下,发现是这么搞的: NSLog(@"%@", isEqual?@"YES":@"NO" ...
- ASP.NET Core Identity自定义数据库结构和完全使用Dapper而非EntityFramework Core
前言 原本本节内容是不存在的,出于有几个人问到了我:我想使用ASP.NET Core Identity,但是我又不想使用默认生成的数据库表,想自定义一套,我想要使用ASP.NE Core Identi ...
- PHP后门***详解
说起php后门***我就心有愉季啊前不久一个站就因不小心给人注入了然后写入了小***这样结果大家知道的我就不说了下面我来给大家收集了各种php后门***做法大家可参考. php后门***对大家来说一点 ...
- html的一些基本语法学习与实战
其实在学校前端开始之前,问过自己为什么要学,因为自己学的比较杂,直到现在刚刚毕业出来工作了,才明确了方向了,要往嵌入式方向走,但是随着时代的发展,在编程和智能硬件结合的越来越紧密,特别是物联网这一块, ...
- 为什么unsigned (-1)表示无符号整数的最大值
整数在计算机中的表示 在计算机中,整数采用补码表示.当前主流编译器中整型在内存中占用四个字节,共32位. 机器数:一个数在计算机中的二进制表示形式, 叫做这个数的机器数.机器数是带符号的,在计算机用一 ...
- 伪分布式Spark + Hive on Spark搭建
Spark大数据平台有使用一段时间了,但大部分都是用于实验而搭建起来用的,搭建过Spark完全分布式,也搭建过用于测试的伪分布式.现在是写一遍随笔,记录一下曾经搭建过的环境,免得以后自己忘记了.也给和 ...
- kafka同步异步消费和消息的偏移量(四)
1. 消费者位置(consumer position) 因为kafka服务端不保存消息的状态,所以消费端需要自己去做很多事情.我们每次调用poll()方法他总是返回已经保存在生产者队列中还未被消费者消 ...
- 使用python画2D线条
"""用于验证整体趋势正确性,不做关闭操作时保持显示""" #!python3 #-*- coding:utf-8 -*- import m ...