Odoo 12自定义模块无法导入Python第三方库问题求助
解决Odoo 12自定义模块无法导入第三方Python库的问题
确认Odoo实际使用的Python环境
Odoo大概率没用到你安装库的那个Python环境,先搞清楚它运行时依赖的Python路径:
- 看Odoo启动命令里的Python路径,比如
/usr/bin/python3或者虚拟环境下的~/odoo_venv/bin/python - 也可以在自定义模块里加一段调试代码,打印当前环境信息:
import sys @api.model def check_python_env(self): print("当前Python路径:", sys.executable) print("包搜索路径:", sys.path)
调用这个函数,根据输出确认是否和你安装库的环境匹配。
给Odoo对应的Python环境安装库
如果Odoo用的是系统Python,直接用对应版本的pip安装:
# Python3用pip3,Python2用pip sudo pip3 install pydantic numpy
如果是虚拟环境,先激活再安装:
source ~/你的Odoo虚拟环境目录/bin/activate pip install pydantic numpy
安装后可以在该Python环境里执行import pydantic测试是否安装成功。
配置自定义模块的依赖声明
Odoo 12不会自动识别自定义模块目录下的requirements.txt,需要在模块的__manifest__.py(或__openerp__.py)里显式声明Python依赖:
{ 'name': '你的模块名', 'depends': ['base'], 'data': [], # 添加外部Python依赖 'external_dependencies': { 'python': ['pydantic', 'numpy'], }, }
这样Odoo启动时会检查这些依赖,未安装的话会直接抛出提示。
排查权限问题
如果是系统Python环境,可能安装库时权限不足,导致库被安装到用户私有目录,而Odoo运行用户(比如odoo系统用户)无法访问。可以用--user参数安装:
pip3 install --user pydantic numpy
或者确保Odoo运行用户对库的安装目录有读取权限。
重启Odoo服务
不管用哪种方式安装完库,必须重启Odoo服务,否则Odoo不会加载新安装的第三方库。
内容的提问来源于stack exchange,提问作者Альтаир Исаметов
相关产品推荐
相关产品推荐

