odoo13搭建-odoo13源码在windows系统的搭建详细过程

2023-11-07

最近因为要用odoo,所以记录一下在windows系统下搭建odoo的过程,odoo使用的是github下载odoo13版本。

资源信息

提前需要的准备的安装包和源码如下:

odoo13源码

odoo13源码下载:https://github.com/odoo/odoo/archive/refs/heads/13.0.zip
这里直接下载zip压缩包就可以了,下载后解压要你指定的目录就可以。

python3.7

python环境,需要用python3.7版本,如果使用3.8及以上版本在pip安装依赖包的时候会报错,切换到3.7后安装就不会有问题。

3.8版本安装依赖包时错误信息如下:

...
copying sasstests.py -> build\lib.win-amd64-3.8
creating build\lib.win-amd64-3.8\sassutils
copying sassutils\builder.py -> build\lib.win-amd64-3.8\sassutils
error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
...

python windows系统官方安装包下载地址:https://www.python.org/downloads/windows/

这里选择的是3.7.9版本,下载链接:https://www.python.org/ftp/python/3.7.9/python-3.7.9-amd64.exe

如果选择其他版本查看上面的网址选择下载即可,注意选择python版本时64位者32位根据你电脑系统进行选择,这里下载的64位版本。

下载后是exe安装文件,默认安装即可,如果想要自己选择安装的路径选择自定义安装。记得勾选Add Python 3.7 to PATH将python添加到系统环境变量。

postgresql

安装odoo需要依赖postgresql数据,如果没有需要安装postgresql数据库,这里选择的12版本,11也可以哈。

postgresql官网下载地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads

下载后自行安装就可以,选择安装路径和数据路径,一直下一步就可以,不会的可以参考文章:http://t.csdn.cn/TsrxK

这里在最后有Stack Builder根据自己选择是否安装,是postgres的扩展工具,这里我没有选择勾选,直接finish就可以了(勾选了不想安装可以关掉)。

下面才是重点:

因为odoo使用postgres数据库不能直接用安装时默认的postgres账户,权限太大,odoo起不来服务会报错,报错信息如下:

Using the database user 'postgres' is a security risk, aborting.

所以下面要为odoo创建一个账户,包含CREATEDB属性。

1. 进入到postgres的安装目录下的bin目录,文件夹上输入cmd然后回车,进入cmd界面

在这里插入图片描述

2. 输入命令createuser.exe -U postgres -P odoo13创建一个用户,用户名odoo13,起名字你自己随便哈,不一定是odoo13,啥都行。输入完命令后为用户设置密码。

D:\DB\PostgreSQL\11\bin>createuser.exe -U postgres -P odoo13
为新角色输入的口令:
再输入一遍:
口令:

3. 为创建的用户赋予CREATE DB属性。

输入psql.exe -U postgres访问数据库,这里使用postgres用户访问数据库,因为postgres用户可以给其他用户赋权修改权限。

进入数据库后输入\du查看角色列表及属性,可以看到第一次查询odoo13没有任何属性。

输入 alter role odoo13 with createdb; 修改询odoo13添加CREATEDB属性,如果不为odoo13添加CREATEDB属性,虽然后面odoo服务可以启动,但是初始化时会报数据库没有权限错误。

这时候我们再输入\du就可以看到有个建立 DB的属性,英文看到的则是CREATE DB

详细命令如下:

D:\DB\PostgreSQL\11\bin>psql.exe -U postgres
用户 postgres 的口令:
psql (11.6)
输入 "help" 来获取帮助信息.

postgres=# \du
                             角色列表
 角色名称 |                    属性                    | 成员属于
----------+--------------------------------------------+----------
 odoo13   |                                            | {}
 postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}


postgres=# alter role odoo13 with createdb;
ALTER ROLE
postgres=# \du
                             角色列表
 角色名称 |                    属性                    | 成员属于
----------+--------------------------------------------+----------
 odoo13   | 建立 DB                                    | {}
 postgres | 超级用户, 建立角色, 建立 DB, 复制, 绕过RLS | {}

搭建odoo服务

经历了上面基础环境的配置,终于到正文搭建odoo服务了,后面其实就很简单了,一步步讲解如下:

创建python虚拟环境

为什么要创建虚拟环境?其实直接安装依赖包也可以,但是都会默认安装到python的资源路径下,每个项目依赖包的版本不同,再使用的时候会产生冲突,所以为什么要为每个项目都配置一个自己的虚拟环境。一是方便管理,二是隔离项目之间依赖包的冲突。 具体操作如下:

进入到文章最开始解压的odoo-13.0目录下,执行命令:

python -m venv venv

注意: 如果你有多个python环境,默认的不是刚刚安装的3.7,需要使用3.7版本下的python.exe创建虚拟环境,执行命令如下:

D:\Python\Python37\python.exe -m venv venv

这里的D:\Python\Python37\python.exe是我的安装目录,根据你自己的目录自行切换。

执行命令后会在目录下生成一个venv的文件夹,里面包含了python的虚拟环境,激活虚拟环境:

venv\Scripts\activate

激活后会看到在你的目录之前有一个 (venv) 的前缀。

安装依赖包

激活虚拟环境后在虚拟环境中用pip安装依赖包,-r选择依赖包文件,-i选择下载依赖包的数据源,这里使用国内清华源,下载稳且快。执行命令如下:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

odoo.conf配置文件

odoo-13.0目录下创建odoo.conf文件,复制下面内容到建odoo.conf文件内:

要自行修改的配置:

  • addons_path:odoo模块路径,如果有多个模块用英文逗号,分隔。
  • db_user:数据库用户名,上面创建的新用户名
  • db_password:数据库密码,新用户的密码
[options]
; addons模块的查找路径
addons_path = D:\xxxx\odoo-13.0\addons
; 管理员主控密码(用于创建、还原和备份数据库等操作)
admin_passwd = admin
; 自动重载?
auto_reload = None
; 用于导入导出的csv文件的默认分隔符
csv_internal_sep = ,
; data目录, 用于存放session信息、附件
data_dir = data
; 数据库主机名
db_host = 127.0.0.1
; 数据库的最大连接数
db_maxconn = 64
; 指定要使用的数据库名
db_name = False
; 数据库用户密码
db_password = xxxx
; 数据库端口号
db_port = 5432
; 创建新数据库时使用的数据库模板
db_template = template1
; 数据库用户名
db_user = xxxx
; 过滤要显示的数据库名称
dbfilter = .*
; 是否为调试模式
debug_mode = False
; 哪些模块加载demo数据?
demo = {}
; 用于发送邮件的邮箱地址
email_from = False
; 在导入大量数据时使用这个选项, 如果在导入期间程序宕机, 你可以在当前状态下继续。指定一个存储中间导入状态的文件名。
import_partial = 
; 一个处理器允许使用的最大物理内存
limit_memory_hard = None
; 一个处理器允许使用的最大虚拟内存
limit_memory_soft = None
; 一个处理器接受的最大请求数
limit_request = None
; 一个请求最多占用多少处理器时间
limit_time_cpu = None
; 一个请求允许的最长实时时间
limit_time_real = None
; 是否允许显示数据库列表
list_db = True
; 是否将log写入db的ir_logging表
log_db = False
; 可以是一组module:log_level对, 默认值是:INFO(表示所有模块的默认日志级别为INFO级别)
log_handler = :INFO
; 日志的级别, 可选值包括debug_rpc_answer, debug_rpc, debug, debug_sql, info, warn, error, critical
log_level = info
; 指定用来存储日志的文件
logfile = openerp-server.log
; 是否按天存放日志
logrotate = False
; 长连接池使用的端口号?
longpolling_port = 8072
; 处理当前计划任务的最大线程数
max_cron_threads = 2
; 强制保存在virtual osv_memory表中的记录的最长时间,以小时为单位
osv_memory_age_limit = 1.0
; 强制一个virtual osv_memory表的最大记录数
osv_memory_count_limit = False
; 数据库可执行文件的路径
pg_path = runtime/pgsql/bin
; 存储服务器pid的文件名
pidfile = None
; 是否使用反向代理模式
proxy_mode = False
; 是否压缩报表
reportgz = False
; 指定用于SSL连接的证书文件
secure_cert_file = server.cert
; 指定用于SSL连接的主密钥文件
secure_pkey_file = server.pkey
; server范围的模块,以逗号分隔
server_wide_modules = None
; 发送邮件的SMTP用户密码
smtp_password = False
; SMTP端口号
smtp_port = 25
; SMTP服务器名
smtp_server = localhost
; SMTP服务器是否支持SSL协议
smtp_ssl = False
; 发送邮件的SMTP用户名
smtp_user = False
; 是否把日志发送给系统日志服务器
syslog = False
; 是否提交YAML或XML测试造成的数据库更改
test_commit = False
; 是否允许YAML和单元测试
test_enable = False
; YML测试文件
test_file = False
; 报表的范例的存放位置
test_report_directory = False
; 为系统提供一个参照的时区
timezone = False
; 哪些模块可翻译, 默认为all
translate_modules = ['all']
; 是否使用数据库的unaccent功能
unaccent = False
; 在安装时哪些模块不加载演示数据
without_demo = False
; 要使用的处理器数量
workers = None
; 是否允许使用XML-RPC协议,默认为True
xmlrpc = True
; 指定使用XML-RPC协议的IP地址,为空时表示绑定到现有IP
xmlrpc_interface = 
; XML-RPC协议使用的TCP端口
xmlrpc_port = 8069
; 是否允许使用XML-RPC安全协议,默认为True
xmlrpcs = True; 指定使用XML-RPC安全协议的IP地址,为空时表示绑定到现有IPxmlrpcs_interface = ; XML-RPC安全协议使用的TCP端口xmlrpcs_port = 8071

启动odoo服务

启动odoo服务,在python的虚拟环境下执行python odoo-bin -c odoo.conf,这时候你可能会遇到一个错误:

...
UnicodeDecodeError: 'gbk' codec can't decode byte 0x84 in position 39: illegal multibyte sequence

如果遇到这个错误,需要更改\odoo\tools\config.py文件中的p.read([self.rcfile])p.read([self.rcfile], 'utf-8'),然后再启动服务就好了。

这时候访问http://localhost:8069/就能看到心心念的odoo界面了,第一次访问需要配置数据库名,邮件,密码,以及语言和国家,勾选Demo data,最后点击Create database稍等片刻就进入odoo的界面了。

在这里插入图片描述

稍等片刻后进入ODOO内容界面,下面的界面多了一些菜单项,是因为开启了开发者调制模型,可能跟你进入的界面不一样,可以参考后面的扩展开启开发者模型。

在这里插入图片描述

扩展:开启odoo开发者模型

正常我们进入的界面后url是这样的:http://localhost:8069/web/#action=35&cids=1&menu_id=5&model=ir.module.module&view_type=kanban

界面导航栏只有应用一个菜单选项,开启开发者模式只需要在web/#中间添加?debug=1,url是这样的:
http://localhost:8069/web/?debug=1#action=35&cids=1&menu_id=5&model=ir.module.module&view_type=kanban

这时候导航栏多了几个菜单:应用、应用商店、更新、更新应用列表、执行已安排的升级。

小结

到这里odoo13源码在windows系统的搭建过程就介绍结束了,非常详细的讲解了在搭建过程中可能遇到的问题和解决问题的办法,希望文章对你能有帮助。欢迎点赞收藏转发和评论,有过有问题可以评论哈,看到都会回复的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

odoo13搭建-odoo13源码在windows系统的搭建详细过程 的相关文章

随机推荐

  • 【Jupyter】【Colab】【AutoGluon】测试

    环境 pip install autogluon 测试代码 AutoGluon官网 from autogluon tabular import TabularDataset TabularPredictor train data Tabul
  • 第七章 缺失数据

    文章目录 一 缺失值的统计和删除 1 缺失信息的统计 2 缺失信息的删除 二 缺失值的填充和插值 1 利用fillna进行填充 练一练 END 2 插值函数 NOTE 关于polynomial和spline插值的注意事项 END 三 Nul
  • 用canvas画出可爱的哆啦A梦

    用canvas画出可爱的哆啦A梦 本文就介绍了如何用canvas案例画出哆啦A梦的基础内容 提示 以下是本篇文章正文内容 下面案例可供参考 一 canvas是什么 HTML5 的 canvas 元素使用 JavaScript 在网页上绘制图
  • seata1.3.0 系列学习(二、nacos+seata使用)

    上篇文章讲了如何安装seata 这篇文章主要讲如何使用 分布讲解什么情况回滚 不回滚 一 新建父级maven pom xml文件导入
  • 数据结构-线性表(链表)(c++版)

    目录 1 单链表的基本概念与特点 2 单链表的特点 3 单链表的结构定义及其方法的实现 3 1 单链表结构的定义 3 2 方法的基本实现 3 3 单链表的插入删除操作讲解 3 4 单链表的删除算法 3 5 单链表的顺序访问与尾递归 3 6
  • c++ string 转 char * 出现乱码 内存共用问题

    系统 unbuntu16 04 IDE vscode 一 出现乱码 std string str Hello Word char p1 str c str 出现乱码 char p2 str data 出现乱码 二 出现内存共用 后面的字符串
  • C++的简单FTP客户端实现(二)编程

    基本FTP客户端 QT C 实现的FTP下载客户端 环境说明 FTP服务器 CentOS7 8 vsFTPD 3 0 2 安装设置见博文 CentOS vsftpd设置 客户端 win10 QT 5 15 2 实现的不是一个功能全的FTP客
  • H.264学习笔记3——帧间预测

    帧间预测主要包括运动估计 运动搜索方法 运动估计准则 亚像素插值和运动矢量估计 和运动补偿 对于H 264 是对16x16的亮度块和8x8的色度块进行帧间预测编码 A 树状结构分块 H 264的宏块 对于16x16的亮度宏块 可以分成16x
  • 【独立开发者er Cocos2d-x实战 011】Cocos2dx 3.x命令行生成APK详解

    Cocos2d x 3 6项目打包生成apk安卓应用文件 搭建安卓环境的步骤有点繁琐 但搭建一次之后 以后就会非常快捷 步骤如下 一 下载安卓环境 搭建Android环境需要用到Android SDK NDK Ant和JDK 下载Andro
  • linux中断处理详解

    与中断有关的数据结构 转载自 http edsionte com techblog archives 1539 1 概述 上文中我们通过一个简单的例子分析了一个中断程序的基本结构 可以看到 中断处理程序在处理中断时起到了关键作用 也是一个中
  • 【2023年电赛国一必备】D题报告模板--可直接使用

    任务 图1 任务内容 要求 图2 基本要求内容 图3 发挥部分内容 说明 图4 说明内容 评分标准 图5 评分内容 正文 部分 摘要 本实验旨在设计和制作一种装置 用于对信号发生器输出的信号进行调制方式识别与参数估计 该装置能够识别和显示信
  • SpringCloud基础知识

    一 什么是微服务架构 微服务 一词源于Martin Fowler的名为Microservices 的博文 可以在他的官方博客上找到 简单地说 微服务是系统架构上的一种设计风格 它的主旨是将一个原本独立的系统拆分成多个小型服务 这些小型服务都
  • telnet远程登陆程序

  • 集合引用类型篇(一)

    ECMAScript中最常用的集合引用类型就是Object和Array 尤其是Array提供的很多方法 可以更方便的操纵数据 为我们提供快速处理数据的能力 Object 显示创建Object的实例对象有两种方法 一种是new Object
  • java开发——Cloneable接口、clone()方法和深浅拷贝

    1 实现Cloneable接口表明该类的对象是允许克隆的 2 允许克隆的意思是 可以调用clone 方法 3 深拷贝还是浅拷贝 取决于如何重写Object的clone 方法 4 原对象和克隆对象的关系 深拷贝 阳关道和独木桥 浅拷贝 藕断丝
  • java人脸识别功能实现

    1 首先是用的百度AI人脸识别接口 去百度申请以下参数作为预备 2 直接导入写好的人脸工具类对人脸进行注册 package cn abtu config import com baidu aip face AipFace import or
  • 基于Springboot+mysql+mybatis-plus+swagger+redis+rabbimq+Springcloud+eureka+feign(http)+Apollo的员工管理系统(1

    基于Springboot mysql mybatis plus swagger redis rabbimq Springcloud eureka feign http Apollo的员工管理系统 1 本系统基于Springboot集成各种组
  • SpringBoot+Kafka+ELK 完成海量日志收集

    整体流程大概如下 服务器准备 在这先列出各服务器节点 方便同学们在下文中对照节点查看相应内容 SpringBoot项目准备 引入log4j2替换SpringBoot默认log demo项目结构如下 pom
  • 字典序最小回文串

    字典序最小回文串 题目解读 给你一个由 小写英文字母 组成的字符串 s 你可以对其执行一些操作 在一步操作中 你可以用其他小写英文字母 替换 s 中的一个字符 请你执行 尽可能少的操作 使 s 变成一个 回文串 如果执行 最少 操作次数的方
  • odoo13搭建-odoo13源码在windows系统的搭建详细过程

    最近因为要用odoo 所以记录一下在windows系统下搭建odoo的过程 odoo使用的是github下载odoo13版本 资源信息 提前需要的准备的安装包和源码如下 odoo13源码 odoo13源码下载 https github co