Introductie
Een Odoo Module Dependency Error ontstaat wanneer Odoo een module niet kan installeren of bijwerken omdat één of meer vereiste modules ontbreken, niet geïnstalleerd zijn of onjuist zijn aangegeven in de manifest-bestanden.
Dit soort foutmelding duikt meestal op in de volgende situaties:
- Bij het installeren van een module
- Bij het upgraden van een module
- Tijdens een database-migratie
- Bij het uitrollen van een custom module
Als afhankelijkheden niet correct zijn opgegeven, blokkeert Odoo het proces om inconsistent gedrag in het systeem te voorkomen.
Deze handleiding vertelt waarom dependency-fouten ontstaan en geeft praktische stappen om ze op de juiste manier op te lossen.
Wat betekent een module-afhankelijkheid in Odoo?
Elke Odoo-module heeft een __manifest__.py met daarin een depends-sectie:
{
'name': 'My Custom Module',
'depends': ['base', 'sale'],
}
Dat betekent het volgende:
- De module heeft 'base' en 'sale' nodig om correct te functioneren
- Odoo zal die afhankelijkheden automatisch installeren wanneer dat mogelijk is
- De code van je module gebruikt modellen en functies uit die vereiste modules
Als één van die dependencies ontbreekt of verkeerd benoemd is, geeft Odoo een dependency-foutmelding.
Veelvoorkomende oorzaken van dependency-fouten in Odoo
1. Vereiste module ontbreekt
Als je module afhangt van een andere module die niet geïnstalleerd is, kan Odoo de installatie niet voortzetten.
Voorbeeld:
'depends': ['stock']
Als stock niet geïnstalleerd is → installatie mislukt.
2. Verkeerde modulenaam in manifest
Een veelvoorkomende fout is een typo of onjuiste technische naam in de depends-lijst:
'depends': ['sales']
In plaats van:
'depends': ['sale']
Odoo vindt dan geen module met die naam en geeft een foutmelding.
3. Circulaire dependency's
Situatie:
- Module A hangt af van Module B
- Module B hangt af van Module A
Odoo kan de juiste installatiereeks niet bepalen.
Circulaire afhankelijkheden leiden vaak tot installatieblokkades.
4. Custom module niet in addons_path
Als een vereiste module een custom module is maar niet in de geconfigureerde addons-path staat, kan Odoo die niet detecteren.
5. Module geïnstalleerd, maar niet correct geladen
Als een dependency eerder gedeeltelijk is geïnstalleerd of tijdens installatie fouten gaf, beschouwt het systeem de module soms als onbeschikbaar.
6. Versieverschil tussen modules
Een custom module die voor een andere Odoo-versie is gemaakt kan conflict bezorgen bij installatie of upgrade.
Zo los je een dependency-fout in Odoo op
Stap 1 – Lees de foutmelding goed
De foutmelding benoemt meestal welke dependency ontbreekt of niet gevonden wordt.
Voorbeeld:
Voorbeeld: ModuleNotFoundError: No module named 'stock'
Of een melding zoals:
Unmet dependencies: sale_management
Stap 2 – Controleer het manifest-bestand
Open het __manifest__.py en controleer zorgvuldig:
- Of de modulenamen correct zijn
- Of er geen typefouten staan
- Of er geen syntaxfouten of overbodige komma's aanwezig zijn
Vergelijk de namen met de officiële technische namen zoals Odoo die gebruikt.
Stap 3 – Installeer ontbrekende dependencies
Ga naar je Odoo-interface:
Apps → zoek de ontbrekende module → Installeer
Bij custom modules zorg je ervoor dat ze:
- In de juiste addons-map staan
- Opgenomen zijn in de addons_path van je configuratie
- Zichtbaar zijn in het Apps-menu
Stap 4 – Herstart de Odoo-server
Nadat je de afhankelijkheden hebt gecorrigeerd:
- Herstart de server
- Werk de app-lijst bij (update apps list)
- Probeer de installatie opnieuw
Stap 5 – Los circulaire afhankelijkheden op
Bij sprake van een cirkel:
- Haal gedeelde functionaliteit uit in een derde, neutrale module
- Verwijder onnodige kruis-afhankelijkheden
Zorg dat modules duidelijke hiërarchieën volgen.
Stap 6 – Controleer je addons_path-configuratie
Bekijk je Odoo-configuratiebestand:
addons_path = /pad/naar/odoo/addons,/pad/naar/custom/addons
Zorg dat alle vereiste modules zich in die mappen bevinden.
Zo voorkom je toekomstige dependency-problemen
- Altijd expliciet afhankelijkheden aangeven
- Houd module-structuur overzichtelijk en modulair
- Vermijd circulaire afhankelijkheden
- Gebruik de juiste technische modulenaam
- Test installatie in een staging-omgeving
- Documenteer relaties tussen custom modules
Een goed opgebouwde module-architectuur voorkomt de meeste dependency-gerelateerde installatiefouten.
Hoe Dasolo zorgt voor overzichtelijke en veilige module-afhankelijkheden
Fouten rond module-afhankelijkheden wijzen vaak op onduidelijke modulair ontwerp of verborgen koppelingen tussen custom componenten. Naarmate een Odoo-installatie groeit, kunnen niet-beheerde afhankelijkheden snel zorgen voor mislukte installaties of upgrades.
Bij Dasolo vermijden we dependency-conflicten door te focussen op:
- Duidelijke en expliciete afhankelijkheidsverklaringen
- Strikte afbakening van moduleverantwoordelijkheden
- Zo min mogelijk koppelingen tussen modules
- Actief vermijden van circulaire referenties
- Goed gestructureerde documentatie van custom componenten
Zo'n heldere dependency-architectuur zorgt voor voorspelbare installaties en maakt onderhoud op lange termijn eenvoudiger.
Samenvatting
De Odoo “Module Dependency Error” treedt op wanneer vereiste modules ontbreken, verkeerd zijn aangegeven of met elkaar conflicteren tijdens installatie of upgrade. Vaak is de kern van het probleem geen technische bug maar een rommelige module-structuur.
Door manifesten zorgvuldig na te kijken, heldere module-hiërarchieën te hanteren en afhankelijkheden te valideren vóór uitrol, kun je terugkerende installatieconflicten vermijden. Een gedisciplineerde module-architectuur is cruciaal voor stabiele en schaalbare Odoo-omgevingen.