Installing OCA addons, the easy way!
Using pip to package and install Odoo addons

Installing OCA addons, the easy way!

Using pip to package and install Odoo addons

[updated 2016-05-10: replaced wheelhouse.acsone.eu by wheelhouse.odoo-community.org]

[updated 2016-09-22: use the new package naming scheme compatible with setuptools-odoo 1.0.0b7]

[updated 2018-04-09: use pypi instead of the OCA wheelhouse, odoo-autodiscover>=2]

Installing Odoo addons can sometimes be complex and error-prone. You need to dig into documentation to find dependencies, install all requirements, download all addons, put them in the right place and/or update the addons_path configuration, hope for the best, interpret the errors, and retry until everything is in place.

On the other hand, the Python ecosystem has a great set of tools to create, distribute and install packages. And it comes complete with a version aware dependency management system. Such tools are setuptools and wheel for packaging and creating built distributions, pypi or custom wheelhouses for distributing the packages and pip to install them.

As a holiday gift to the community, I am happy to announce that it is now possible to install all OCA addons using pip, without worrying about git repositories and dependencies.

It is made possible thanks to a thin wrapper around Odoo startup scripts providing automatic discovery of available addons: odoo-autodiscover.

Here is how to use it.

The following procedure assumes the following pre-requisistes are satisfied:

Let's first create a virtualenv and install Odoo:

virtualenv venv
. venv/bin/activate
pip install -r https://raw.githubusercontent.com/odoo/odoo/8.0/requirements.txt
pip install https://nightly.odoo.com/8.0/nightly/src/odoo_8.0.latest.zip

There are of course other methods to install Odoo. Whichever method you choose, the following commands must work at this stage:

python -c "import openerp.api"
pip list | grep odoo
odoo.py
openerp-server

Now make sure we have a recent pip and install odoo-autodiscover:

pip install --upgrade pip
pip install "odoo-autodiscover>=2"

And we are now ready to install addons. Let's say we want 'mis_builder' from OCA/account-financial-reporting, and 'shell' from OCA/server-tools:

pip install odoo8-addon-mis_builder odoo8-addon-shell

And that's it! All required dependencies are installed automatically.

You can now create a database and start Odoo normally. There is no need to specify any addons-path.

For instance if we want to start the shell:

openerp-server shell

Or we want to create a database and install mis_builder in it:

createdb db-oca-80
openerp-server -d db-oca-80 -i mis_builder

All OCA addons are available as python packages: just prefix the addon name with 'odoo8-addon-'.

There are also meta-packages for each OCA repository that install all addons at once. Simply prefix the repository name with 'odoo8-addons-oca-'.

For instance, if we need all OCA/connector-magento addons, it's easy:

pip install odoo8-addons-oca-connector-magento --extra-index-url=https://wheelhouse.odoo-community.org/oca-simple

Et voilà, everything is installed including all dependencies from 5 different github repositories as well as the 'magento' and 'suds' packages from pypi.

For more information, you can explore the documentation of odoo-autodiscover (the runtime addon discovery component) and setuptools-odoo (a helper library
to distribute odoo addons as python packages).

Enjoy and report any feedbacks to support@odoo-community.org!

Installing OCA addons, the easy way!
Acsone SA/NV, Stéphane Bidoul 29 December, 2015
Share this post
Archive
Sign in to leave a comment
Odoo Apps, Contribution Survey, the Next Generation and Local Events
December issue of the OCA Newsletter