setuptools-odoo
A library to help package Odoo addons with setuptools
What it is and what it does
Setuptools-odoo is a setuptools plugin that bridges Odoo addon development and Python packaging infrastructure. It reads Odoo manifest files (__manifest__.py or __openerp__.py) and automatically populates setup.py keywords—name, version, description, dependencies, and more—eliminating manual boilerplate. This allows developers to package and distribute Odoo addons using standard Python tools (pip, wheel, PyPI) rather than Odoo's native mechanisms.
The package supports both single-addon and multi-addon project layouts across Odoo versions 8 through 16, with version-specific namespace handling (odoo.addons for Odoo 10+, odoo_addons for Odoo 8–9). It automatically resolves dependencies on Odoo itself and other addons, excluding official Community and Enterprise addons which are satisfied by the Odoo distribution. However, the project is now deprecated; maintainers recommend whool for individual addons and hatch-odoo for complete projects.
Use it for:
- Package a single Odoo addon for distribution on PyPI so other developers can install it via pip.
- Build wheels for Odoo addons to speed up deployment in production environments.
- Manage multi-addon projects for a specific customer where addons are not intended for external reuse.
- Automate dependency resolution between Odoo addons and external Python libraries during packaging.
- Integrate Odoo addon packaging into CI/CD pipelines using standard Python build tools.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Setuptools-odoo automates packaging of Odoo addons by extracting metadata from Odoo manifest files and populating standard setuptools keywords, enabling distribution via pip and PyPI.
Yes, if you are actively maintaining Odoo addons for versions 8–16 and need to package them for distribution. Install friction is low and maintenance is active. However, be aware the project is deprecated: for new projects, evaluate whool (single addons) or hatch-odoo (complete projects) first. The LGPLv3 copyleft license requires you to license derivative works the same way.
Install
setuptools-odoo on PyPI
pip
pip install setuptools-odoouv
uv add setuptools-odoopoetry
poetry add setuptools-odooInstalling setuptools-odoo
Before you install
Low install friction with just two runtime dependencies (setuptools and setuptools_scm). Active maintenance with a recent release; last commit was 2026-08-10. However, the project is progressively being deprecated in favor of whool and hatch-odoo.
License in practice
Licensed under LGPLv3 (copyleft). Derivative works and distributions must preserve the same license terms and provide source code access.
Quickstart
# In your Odoo addon's setup.py:
import setuptools
setuptools.setup(
setup_requires=['setuptools-odoo'],
odoo_addon=True,
)
# Then: pip install -e .
Requires Odoo 8–16 to be installed in your environment. For Odoo 8–10, odoo-autodiscover must also be installed. Project structure must follow Odoo conventions (odoo/addons/<addon_name>/__manifest__.py for Odoo ≥11, or odoo_addons/<addon_name>/__openerp__.py for Odoo 8–9).
Verify before relying
- Whether the deprecation in favor of whool and hatch-odoo affects ongoing support or bug fixes.
- Compatibility details with Odoo versions 8–16 and any known limitations per version.
Package facts
| License | LGPLv3 (copyleft) |
| Python support | supports the current Python release (!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,>=2.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — setuptools, setuptools_scm |
| Maintenance | actively maintained — 186 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 131,111/month — #11,605 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: setuptools_odoo-3.3.2-py2.py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
manifestoo-coreParses and reasons about Odoo addon manifests,…
permissive · top 15,000 on PyPI
setuptools-gitA setuptools plugin that automatically includes…
permissive · top 15,000 on PyPI
whoolwhool is a PEP 517 and PEP 660 compliant build…
permissive · top 15,000 on PyPI
setuptools-dsosetuptools_dso is a setuptools plugin that…
permissive · top 15,000 on PyPI
setupmetaReduces boilerplate in setup.py by…
permissive · top 5,000 on PyPI
odoo-test-helperProvides utilities for writing Odoo tests,…
copyleft · top 15,000 on PyPI
pytest-odoopytest-odoo is a pytest plugin that runs Odoo…
agpl · top 15,000 on PyPI
setuptools-git-versioningAutomatically generates PEP 440-compliant…
permissive · top 5,000 on PyPI
ERPpeekERPpeek is a command-line and library client…
permissive · top 15,000 on PyPI
openupgradelibProvides utility functions for Odoo database…
agpl · top 15,000 on PyPI