odoo-bin

Odoo-bin是启动odoo的第一步
odoo源码解析-- <2>--启动类加载(1)
它调用了odoo.cli.main()


odoo.cli.command

Command

main()方法
odoo源码解析-- <2>--启动类加载(1)
这里有三个if
分析可知,程序目前只进入到第三个判断
odoo源码解析-- <2>--启动类加载(1)
这里commands包含:shell;help;deploy;scaffold;server;start.这些都是来自CommandType类的cls参数
odoo源码解析-- <2>--启动类加载(1)
在Python中,普通的方法第一个参数一般都是self,它代表实例本身;另一个为cls,它代表类本身。在输出cls时,得到结果odoo源码解析-- <2>--启动类加载(1)
这些类又由何而来?
odoo源码解析-- <2>--启动类加载(1)
在Command类中,odoo的开发者将该类的元类设置为CommandType类,而下面这些类又继承了Command类
odoo源码解析-- <2>--启动类加载(1)
因此cls参数的值就是这些类的类名。Commond作为父类不加载到commands数组中。
Main()方法将command默认为server,因此run()方法调用的是odoo.cli.server的run()方法:
odoo源码解析-- <2>--启动类加载(1)

odoo源码解析-- <2>--启动类加载(1)
Odoo.cli.main()通过tools.config._parse_config([args[0]])设计模块路径,通过o.run(args)运行server
这一步中,加载了配置文件,以及默认的指令
见后续文档

相关文章:

  • 2021-11-29
  • 2021-12-26
  • 2021-07-25
  • 2021-11-07
  • 2021-07-16
  • 2021-11-11
  • 2021-05-05
  • 2021-05-17
猜你喜欢
  • 2021-06-05
  • 2021-06-20
  • 2021-09-12
  • 2021-08-12
  • 2021-07-18
  • 2021-08-01
  • 2021-11-27
相关资源
相似解决方案