Install & Compatibility
Where this runs
tested against v3.3.2 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.910 runs
installs and imports cleanly · install 0.0s · import 0.000s · 21.1MB
glibcpy 3.10–3.910 runs
installs and imports cleanly · install 2.3s · import 0.000s · 22MB
22MB installed
● package 22MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
find_packages
✓ from setuptools_odoo import find_packages
✗ from setuptools import find_packages
Use setuptools_odoo.find_packages for Odoo addon specific package discovery, as it handles manifest files.
OdooDistribution
✓ from setuptools_odoo.dist import OdooDistribution
Required to enable Odoo-specific packaging features like the 'odoo_addons' option in setup().
To package an Odoo addon with setuptools-odoo, you typically define your build system in `pyproject.toml` and optionally use a `setup.py` for advanced `setuptools-odoo` specific configurations. The example demonstrates setting up `build-system` requirements in `pyproject.toml` and a basic `setup.py` that utilizes `OdooDistribution` and `odoo_addons=True` to correctly package an Odoo module.
# pyproject.toml
[build-system]
requires = ["setuptools>=61.0.0", "setuptools-odoo~=3.3.0", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "my_odoo_addon"
version = "1.0.0"
description = "My custom Odoo addon"
authors = [
{name = "Your Name", email = "your@example.com"}
]
readme = "README.md"
license = {text = "MIT"}
requires-python = ">=3.8"
classifiers = [
"Framework :: Odoo",
"Framework :: Odoo :: 16.0",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10"
]
dependencies = [
# Add your Odoo module dependencies here, e.g., 'odoo>=16.0.0'
]
# setup.py (optional, but needed for specific Odoo options)
import setuptools
from setuptools_odoo import find_packages, OdooDistribution
if __name__ == '__main__':
setuptools.setup(
name="my_odoo_addon",
version="1.0.0", # Should match pyproject.toml
distclass=OdooDistribution,
packages=find_packages(),
include_package_data=True,
odoo_addons=True, # Enable Odoo addon specific packaging
# odoo_addon_dir='my_addon_dir', # Optional: if your addon is not at root
zip_safe=False,
)
setuptools-odoo --version
Upgrade
Version history
3.3.2latest on PyPI · released Feb 9, 2026
Audit
Dependencies
setuptoolsrequiredCore dependency, extended by this library. Explicitly pinned for compatibility.