Odoo-Exp: Odoo中的external_dependencies
-
在模块开发中,我们往往会引入第三方的python模块。比如当我们在对业务数据做统计分析时,可能会用到
pandas
Python函数库。在开发者这边我们可以安装pandas
包,然后在我们的代码中可以导入pandas包中的函数或类:from pandas import DataFrame
这样操作,开发者本地没有问题。但是如果这个Odoo模块独立发布出去,客户拿来一安装,服务器立即吐一堆的错误信息,如下面的import错误,因为客户并不知道需要先安装
pandas
:... ... ImportError: No module named pandas
怎么样在安装模块时能友好的提醒用户安装需要的Python函数包,而不是丢一堆错误信息给用户呢?
首先在import的时候,做
try...except
如下:try: from pandas import DataFrame except ImportError: pass
然后在
__manifest__.py
文件中添加external_dependencies
说明,如下:"external_dependencies": { 'python': ['pandas'], 'bin': ['ffmpeg'] },
其中
python
key 对应的是python函数包,比如这里就是要求安装pandas
函数包。另外这里还有一个bin
key,它对应的则是外部命令,比如上例中的`ffmpeg``就是Linux下著名的视频/图片处理命令。