Introdução
Um erro de dependência de módulo no Odoo acontece quando a plataforma não consegue instalar ou atualizar um módulo porque um ou mais módulos de que ele depende estão ausentes, mal declarados ou não disponíveis no ambiente.
Este tipo de problema tende a surgir em situações como:
- Instalação de módulo
- Atualização de módulo
- Migração de base de dados
- Implementação de módulos personalizados
Quando as dependências não estão corretamente configuradas, o Odoo bloqueia a operação para evitar que a aplicação fique inconsistente ou com falhas funcionais.
Este guia descreve as razões mais frequentes para esses erros e mostra passos práticos para os resolver de forma correta.
O que significa dependência de módulo no Odoo?
Cada módulo do Odoo inclui um ficheiro __manifest__.py com uma secção depends onde se declaram os requisitos:
{
'name': 'My Custom Module',
'depends': ['base', 'sale'],
}
Na prática, isto significa:
- O módulo precisa que 'base' e 'sale' estejam instalados
- Odoo pode instalar automaticamente essas dependências se estiverem disponíveis
- O módulo usa modelos e funcionalidades fornecidas por esses módulos
Se alguma dependência faltar ou estiver declarada de forma incorreta, o Odoo interrompe a instalação e lança um erro de dependência.
Causas mais comuns de erros de dependência no Odoo
1. Módulo requerido em falta
Se o módulo que declarou dependência não está instalado no sistema, a instalação do módulo dependente não avança.
Exemplo prático:
'depends': ['stock']
Se o módulo stock não existir no ambiente → a instalação falha.
2. Nome do módulo incorrecto no manifesto
Se o nome técnico da dependência estiver escrito de forma errada no __manifest__.py:
'depends': ['sales']
Quando o correto seria:
'depends': ['sale']
Odoo não encontra o módulo com esse nome e reporta um erro.
3. Dependências circulares
Situação típica:
- O Módulo A depende do Módulo B
- E o Módulo B depende do Módulo A
Nesse caso o Odoo fica sem saber que ordem seguir para instalar ambos.
Dependências circulares normalmente impedem a instalação dos módulos envolvidos.
4. Módulo personalizado fora do addons_path
Se uma dependência é um módulo personalizado que não está dentro das pastas definidas em addons_path, o Odoo não o detecta como disponível.
5. Módulo instalado mas com instalação incompleta
Quando uma instalação anterior falha parcialmente, o módulo pode ficar num estado inconsistente que faz com que o sistema o trate como indisponível.
6. Incompatibilidade de versão entre módulos
Módulos desenvolvidos para versões diferentes do Odoo podem ter APIs ou dependências que não coincidem, causando conflitos durante instalação ou actualização.
Como resolver um erro de dependência de módulo no Odoo
Passo 1 – Ler cuidadosamente a mensagem de erro
A mensagem de erro normalmente indica qual módulo está em falta ou qual dependência não foi satisfeita.
Exemplo prático:
Exemplo comum: ModuleNotFoundError: No module named 'stock'
Ou uma notificação do tipo:
Unmet dependencies: sale_management
Passo 2 – Verificar o ficheiro manifest
Abra o __manifest__.py e confirme:
- Se os nomes técnicos dos módulos estão correctos
- Se não há erros ortográficos
- Se a sintaxe do ficheiro está válida (vírgulas, aspas, etc.)
Compare os nomes com os nomes técnicos oficiais dos módulos no Odoo para evitar discrepâncias.
Passo 3 – Instalar as dependências em falta
Proceda assim:
Apps → procurar o módulo indicado → clicar em Instalar
Para módulos personalizados, certifique-se de que:
- Estão presentes na pasta de addons correta
- São referenciados na configuração addons_path
- Aparecem no menu de Aplicações do Odoo
Só assim o Odoo poderá instalá‑los automaticamente quando necessário.
Passo 4 – Reiniciar o servidor Odoo
- Depois de corrigir as dependências:
- Reinicie o serviço Odoo
- Actualize a lista de aplicações
Tente instalar novamente o módulo problemático
Passo 5 – Eliminar dependências circulares
- Se existir uma dependência circular:
- Extraia a lógica partilhada para um terceiro módulo comum
Remova dependências desnecessárias entre módulos
Organize os módulos em camadas com dependências claras e unidireccionais.
Passo 6 – Verificar configuração do addons_path
Abra o ficheiro de configuração do Odoo e confirme a linha:
addons_path = /caminho/para/odoo/addons,/caminho/para/addons/personalizados
Como evitar erros de dependência entre módulos
- Assegure que todos os módulos necessários estão efectivamente nessas pastas.
- Boas práticas resumidas: declarar dependências de forma explícita
- Manter a estrutura dos módulos limpa e modular
- Evitar nomes técnicos incorrectos ou mal escritos
- Testar instalações e actualizações num ambiente de staging
- Documentar claramente as relações entre módulos personalizados
Uma arquitetura de módulos organizada previne a maioria dos erros de instalação relacionados com dependências.
Como a Dasolo organiza dependências limpas entre módulos
Erros de dependência costumam revelar relações pouco claras entre componentes personalizados. À medida que o ecossistema Odoo cresce, dependências descontroladas transformam‑se rapidamente em pontos de falha durante upgrades e novas instalações.
Na Dasolo, evitamos conflitos de dependência ao aplicar princípios como:
- Declaração explícita das dependências
- Definição nítida dos limites de cada módulo
- Minimização do acoplamento entre módulos
- Eliminação de referências circulares sempre que possível
- Documentação estruturada dos módulos e das suas interdependências
Uma arquitetura de dependências limpa garante instalações previsíveis e facilita a manutenção e evolução das soluções Odoo no longo prazo.
Conclusão
O erro “Module Dependency Error” no Odoo surge sempre que módulos essenciais estão ausentes, mal declarados ou entram em conflito durante instalação/actualização. Muitas vezes a raiz do problema é uma arquitectura de módulos pouco disciplinada, não a mensagem do erro em si.
Rever manifestos, seguir relações modulares claras e validar dependências antes de levar código para produção torna os ambientes Odoo mais estáveis. Uma política rígida de organização de módulos é essencial para sustentar crescimentos e upgrades sem surpresas.