记录搭建Odoo框架
一、获取 Odoo 源码
Odoo 是一个开源项目,我们可以轻松的在 Github 上找到它的源码。
本次中使用的是 12.0 版本的 Odoo,所以在拉取代码时选择 12.0 的分支。
确保拉取的速度,使用--depth参数。
git clone https://github.com/odoo/odoo.git -b 12.0 --depth=1 ./odoo_dev
二、启动Odoo

在Odoo的源码根目录下有一个 odoo-bin 的 Python 脚本文件,这个是 Odoo 的启动脚本。
运行该脚本之后会在8069默认端口启动 Odoo 服务,启动之前需要运行 pipenv shell 进入虚拟环境:
方法一:
如果是用 Pycharm 启动首先需要在 Preferences > Project > Project Interpreter > Add > Existing Environment 中 将使用 pipenv 生成的 Python 添加进去,一般 pipenv 生成的虚拟环境目录在 ~/.local/share/virtualenvs/,如果是按照上一篇生成的虚拟环境, 则目录则为 ~/.local/share/virtualenvs/odoo_env-* (* 号为随机字符串)。
方法二:
$ pipenv shell
进入虚拟环境后就可以运行 Odoo 启动脚本啦(其实还没完成!!):
$ ./odoo-bin
启动后会出现这样:
2019-03-18 15:30:44,198 14047 INFO ? odoo: Odoo version 12.0
2019-03-18 15:30:44,199 14047 INFO ? odoo: Using configuration file at /home/ray/.odoorc
2019-03-18 15:30:44,199 14047 INFO ? odoo: addons paths: ['/home/ray/.local/share/Odoo/addons/12.0', '/home/ray/odoo_dev/odoo/addons', '/home/ray/odoo_dev/addons']
2019-03-18 15:30:44,199 14047 INFO ? odoo: database: odoo@default:default
2019-03-18 15:30:44,373 14047 INFO ? odoo.addons.base.models.ir_actions_report: You need Wkhtmltopdf to print a pdf version of the reports.
2019-03-18 15:30:44,544 14047 INFO ? odoo.service.server: HTTP service (werkzeug) running on ray-virtual-machine:8069
2019-03-18 15:30:44,545 14047 INFO ? odoo.modules.loading: init db
2019-03-18 15:30:45,709 14047 INFO odoo odoo.modules.loading: loading 1 modules...
然后你访问https://IP:8069,这时候会报错,出现Server 500
原因是我们还没有在 Odoo 启动配置文件里配置数据库账号和密码,但是 Odoo 的启动配置文件在哪里呢??
这是让我们使用 ./odoo-bin --help,你会发现需要带参数。
$ ./odoo-bin --help
...
Common options:
-c CONFIG, --config=CONFIG
specify alternate config file
-s, --save save configuration to ~/.odoorc (or to
~/.openerp_serverrc if it exists)
...
我们可以看到有 -c 和 -s,
-c代表我们可以自己知道启动的配置文件。
-s 是Odoo 会在 home 目录下生成 .odoorc 配置文件,并且用 -c 参数可以指定启动的配置文件。
若不指定 Odoo 的运行配置文件,并且 home 目录下存在 .odoorc 配置文件,则 Odoo 默认会选择这个作为启动的配置文件。
所有我们可以先运行./odoo-bin -s , 先创建home目录下的一个.odoorc配置文件:
$ ./odoo-bin -s
然后编辑 ~/.odoorc 文件,将 db_user 和 db_password 分别修改为我们在安装 PostgreSQL时设置的用户 odoo 和这个用户的密码。
...
db_password = 123456
...
db_user = odoo
...
再次运行启动脚本启动 Odoo,这时已经可以成功访问 http://localhost:8069 了,并且进入的是一个数据库选择页面, 我们可以直接选择 odoo 数据库或者点击 「Manage Databases」跳转到数据库创建页面。
这里是进入我在pycharm指定的odoo数据库了。账号和密码默认都是admin。

登录成功后:

PS:
正常的话照上面的步骤就是可以完成odoo的启动的,但是有时候事情并不是一帆风顺,总会出现错误,下面就来说说我在搭建的过程中出现的错误吧:
错误一:odoo删除数据库后出现的KeyError:'ir.http',在我成功搭建后,手贱把odoo用户中的一个数据库删掉了,导致在./odoo-bin -s 启动的时候出现了此错误

解决办法:
①首先看一下配置文件的数据库信息是否正确
②在pycharm中,在Run /Debug Configurations 里输入 -i base -d 新数据库名

更新中...
记录搭建Odoo框架的更多相关文章
- 手工搭建ABP框架(1) - Web项目
为了防止不提供原网址的转载,特在这里加上原文链接: http://www.cnblogs.com/skabyy/p/7295533.html ABP是 ASP.NET Boilerplate Proj ...
- IDEA搭建SSMM框架(详细过程)
IDEA搭建SSMM框架(详细过程) 相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij ...
- 第n次搭建 SSM 框架
什么说第 N 次搭建SSM框架呢? 刚学习java的时候,搭建 SSM 框架想做一个个人项目之类的,后来没搭起来,也就拖延了,进入公司之后,接触的第一个项目就是SSM的,模仿了一下,也能搭个简简单单的 ...
- 使用maven搭建ssm框架的javaweb项目
目前主流的javaweb项目,常会用到ssm(Spring+Spring MVC+Mybatis)框架来搭建项目的主体框架,本篇介绍搭建SSM框架的maven项目的实施流程.记之共享! 一.SSM框架 ...
- 使用Maven搭建SSM框架(Eclipse)
今天学习一下使用Maven搭建SSM框架,以前都是用别人配置好的框架写代码,今天试试自己配置一下SSM框架. 这里我的参数是Windows7 64位,tomcat9,eclipse-jee-neon- ...
- 一步一步教你用IntelliJ IDEA 搭建SSM框架(1)
1.基本概念 SSM框架指:Spring MVC + Spring + MyBatis Spring MVC是一种web层mvc框架,用于替代servlet,处理|响应请求,获取表单参数,表单校验等 ...
- 使用maven搭建ssm框架环境
1.前言 因为经常换环境,在搭ssm框架的时候老是出错,所以记录一下最近搭建的环境,以供参考. 本文讲解如何使用maven搭建ssm框架,并能用于简单的登录注册. IDE:IDEA,JDK版本:1.8 ...
- 使用maven搭建ssh框架
首先搭建sturts2框架,配置pom文件: <properties> <!-- 文件拷贝时的编码 --> <project.build.sourceEncoding&g ...
- myeclipse搭建SSH框架
搭建SSH框架 Struts+hibernater+spring架构(myeclipse) 右击,首先加入spring,加入hibernater,再加入struts2 复制jar包(把tomcat发布 ...
随机推荐
- Linux链接脚本学习--lds(转)
Linux链接脚本学习--lds 一.概论 ld: GNU的链接器. 用来把一定量的目标文件跟档案文件链接在一起,并重新定位它们的数据,链接符号引用. 一般编译一个程序时,最后一步就是运行ld进行链接 ...
- python3 调用 salt-api
使用python3调用 salt-api 在项目中我们不能使用命令行的模式去调用salt-api,所以我们可以写一个基于salt-api的类,方便项目代码的调用.在这里特别附上两种方式实现的pytho ...
- Thrift 基础(C++ rpc )
一.thrift简介 thrift是Facebook开源的一套rpc框架,目前被许多公司使用 我理解的特点 使用IDL语言生成多语言的实现代码,程序员只需要实现自己的业务逻辑 支持序列化和反序列化操作 ...
- JavaSE-java8-谓词复合的用法
谓词接口包括三个方法: negate. and 和 or,让你可以重用已有的Predicate来创建更复杂的谓词 一.比如可以用negate方法来返回一个Predicate非 public class ...
- setPreferredContentSize error in ios app
Creating "IOS Project" in xcode 5 causes the following when launching for iPad simulator. ...
- Android Studio常用设置
Android Studio显示行号 File-->Setting(Ctrl+Alt+S),选择Editor-->General-->Appearance,右侧勾选Show lin ...
- linux文件命令汇总
查看文件内容命令 cat 直接输出在命令行,适用于很少内容时候的输出, vim .vi 通过 编辑命令的只读模式进行文件内容的查看(翻页快捷键好像是 ctrl + F 下一页, ctrl + B 上 ...
- java断言assert初步使用:断言开启、断言使用
1 说明 java断言assert是jdk1.4引入的. jvm断言默认是关闭的. 断言可以局部开启的,如:父类禁止断言,而子类开启断言,所以一般说“断言不具有继承性”. 断言只适用复杂的调式过程. ...
- scala-05-map映射
Map Scala映射(Map)是一组键/值对的对象. 任何值都可以根据键来进行检索.键在映射中是唯一的,但值不一定是唯一的.映射也称为哈希表.映射有两种,不可变的和可变的.可变对象和不可变对象之间的 ...
- Java实现排行榜基于Redis
访问我的博客 前言 排行榜作为互联网应用中几乎必不可少的一个元素,其能够勾起人类自身对比的欲望,从而来增加商品的销量.排行榜的实现方式基本大同小异,大部分都基于 Redis 的有序集合 sorted ...