我使用Python库ujson在Python中创建了一个Odoo模块。
我使用pip install ujson
手动在我的开发服务器上安装了这个库。
现在我想在我的实时服务器上安装该模块。我可以以某种方式告诉Odoo模块在安装时安装ujson库吗?所以我只需要将模块添加到我的插件路径并通过Odoo Web界面安装它?
自动化的另一个原因是,如果我想共享我的自定义模块,那么其他人不必在他们的服务器上手动安装库。
有关如何以这种方式配置我的模块的任何建议吗?或者我应该在我的模块中包含库的目录吗?
答案 0 :(得分:3)
您应该尝试 - 除了导入以处理odoo服务器启动时的问题:
try:
from external_dependency import ClassA
except ImportError:
pass
对于模块的其他用户,请扩展模块清单中的external_dependencies
(v9及更少:__ openerp__.py; v10 +:__ manifest__.py),这将在安装时提示警告:
"external_dependencies": {
'python': ['external_dependency']
},
非常感谢Ivan和他的Blog
答案 1 :(得分:2)
感谢你的帮助,@ Walid Mashal和@CZoellner,你们都指出了我正确的方向。
我现在解决了这个任务,并将以下代码添加到我的模块的__init__.py中:
import pip
try:
import ujson
except ImportError:
print('\n There was no such module named -ujson- installed')
print('xxxxxxxxxxxxxxxx installing ujson xxxxxxxxxxxxxx')
pip.main(['install', 'ujson'])
答案 2 :(得分:0)
以下是在report.py(odoo_root_folder / addons / report / models / report.py)中的基本插件中的odoo基本模块报告中使用的代码,用于安装wkhtmltopdf。
TextField
基本上你需要找到一些python代码来运行库并安装它并将其包含在你的一个.py文件中,并且应该这样做。
答案 3 :(得分:0)
在使用以下命令的python文件中,您可以安装它(它仅适用于odoo)。例如:我将在这里安装xlsxwriter
try:
import xlsxwriter
except:
os.system("pip install xlsxwriter")
import xlsxwriter