Het doel van een goede setup
Een Odoo development omgeving moet drie dingen doen: de code correct indexeren, Odoo starten met de juiste addons paths, en debugging mogelijk maken zonder telkens manueel commando’s te knutselen.
Als één van die drie ontbreekt, verlies je veel tijd aan autocomplete-problemen, importfouten of debugging die net niet werkt.
1. Zet je projectstructuur logisch op
Gebruik bij voorkeur een vaste map met Odoo Community, eventueel Enterprise, en je custom addons naast elkaar. Bijvoorbeeld: odoo-src, enterprise, custom-addons en een aparte config-map.
Meng custom modules niet in de Odoo core. Dat maakt upgrades en gitbeheer rommelig. Je eigen addons horen in een eigen repository of duidelijke projectmap.
2. Gebruik een virtualenv
Maak een Python virtualenv voor je Odoo-versie en installeer de dependencies uit requirements.txt. Koppel die interpreter in PyCharm aan het project.
Let op met Python-versies: Odoo-versies hebben concrete verwachtingen. Een ogenschijnlijk kleine Python mismatch kan vreemde dependencyproblemen veroorzaken.
3. Configureer addons_path bewust
Je odoo.conf moet minstens de core addons en je custom addons bevatten. Met Enterprise komt daar het enterprise addons-pad bij. De volgorde is belangrijk wanneer modules dezelfde technische namen of assets raken.
Hou addons_path leesbaar. Als je tien paden nodig hebt, documenteer waarom. Een onduidelijke addons_path is een klassieker bij “module niet gevonden” of “verkeerde module geladen”.
4. Maak een PyCharm run configuration
Gebruik als script meestal het Odoo startbestand, bijvoorbeeld odoo-bin. Geef je configuratiebestand mee met -c /pad/naar/odoo.conf. Zet de working directory bewust op je Odoo bronmap of projectroot.
Typische parameters zijn: -c odoo.conf, -d database_naam, --dev=xml,qweb,assets voor frontend/view-werk, en eventueel -u module_naam bij gecontroleerde module-updates. Gebruik -u niet blind bij elke start.
5. Gebruik de Odoo plugin en zet je addons parent als resource folder
Wie serieus Odoo ontwikkelt in PyCharm, schaft best de Odoo plugin aan. Dat is in de praktijk dé manier om vlotter te werken: betere herkenning van Odoo-structuur, XML, manifests, modelreferenties en typische Odoo-patronen.
Voor autocomplete is vooral belangrijk dat je de parent-map van je addons als resource folder selecteert. Dus niet alleen één modulemap markeren, maar de map waar je modules onder hangen. Zo kan PyCharm modules, XML-referenties en imports veel consistenter vinden.
Als from odoo import models, fields, api niet herkend wordt, wijst dat meestal op een verkeerde interpreter, ontbrekende source/resource path of projectroot.
6. Debugging met breakpoints
Start Odoo via de PyCharm debugger en zet breakpoints in modelmethodes, controllers of services. Test met één concrete flow zodat je breakpoint niet door achtergrondprocessen geraakt wordt.
Bij multi-worker configuraties is debugging lastiger. Voor lokale ontwikkeling gebruik je meestal geen workers, zodat je breakpoint voorspelbaar in hetzelfde proces valt.
7. Veelvoorkomende beginnersproblemen
- Module staat in de map maar verschijnt niet: addons_path of apps update vergeten.
- ImportError bij starten: verkeerde virtualenv of ontbrekende dependency.
- Breakpoint wordt niet geraakt: Odoo draait niet via de debugger of de code is niet de code die geladen wordt.
- XML-wijziging zichtbaar maar Python niet: module-update of server restart nodig.
- Assets wijzigen niet: assets cache/dev-mode controleren.
Praktische checklist
- Odoo core staat apart van custom addons.
- Virtualenv gebruikt de juiste Python-versie.
- PyCharm interpreter wijst naar die virtualenv.
- De Odoo plugin is geïnstalleerd en actief.
- De parent-map van je custom addons staat als resource folder.
- odoo.conf bevat correcte addons_path.
- Runconfig start odoo-bin met -c odoo.conf.
- Lokale database is duidelijk gekozen.
- Breakpoints getest met workers uit.
Conclusie
Een goede PyCharm setup is geen luxe. Het is de basis om Odoo rustig te begrijpen, fouten sneller te vinden en maatwerk minder fragiel te bouwen.