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

最近因为要用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界面

odoo13搭建-odoo13源码在windows系统的搭建详细过程_第1张图片

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的界面了。

odoo13搭建-odoo13源码在windows系统的搭建详细过程_第2张图片

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

odoo13搭建-odoo13源码在windows系统的搭建详细过程_第3张图片

扩展:开启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系统的搭建过程就介绍结束了,非常详细的讲解了在搭建过程中可能遇到的问题和解决问题的办法,希望文章对你能有帮助。欢迎点赞收藏转发和评论,有过有问题可以评论哈,看到都会回复的。

你可能感兴趣的:(Python,odoo13,windows,python)