Odoo Python Packages: Install Them on Easy Instance

Fix 'external dependency is not met' in Odoo: install Odoo Python packages with pip from the Easy Instance console, no SSH, kept across restarts.

Updated . 3 min read

Many Odoo modules need Python packages that are not part of the standard Odoo image: pandas for reports, qrcode for labels, paramiko for SFTP, stripe or phonenumbers for integrations. On Easy Instance you install these Odoo Python packages from the browser in the Packages section. There is no SSH and no Dockerfile to edit, and the packages survive restarts and redeploys.

The error: an external dependency is not met

A module declares the Python libraries it needs under external_dependencies in its __manifest__.py. When you click Activate in Odoo Apps and one is missing, Odoo stops the install with an error like this:

Odoo Invalid Operation dialog: Unable to install module hrms_dashboard because an external dependency is not met: pandas

If you install from the Easy Instance Marketplace instead, the same check runs and the message reads "Missing Python packages: pandas. Please install them first using the Package Installer." Either way, the name at the end of the message, here pandas, is the package to install. Odoo reports missing packages one at a time, so you may see this error again for a second package after fixing the first.

Step 1: Open the Packages section

In the Easy Instance console, open the instance and click Packages in the left sidebar, under the Develop group. The page shows three summary cards:

  • Installed packages: how many you have added from this dashboard.
  • Installing: the package pip is running right now, or None.
  • Instance: the instance name, with a reminder that it restarts to load new packages.

Below is a Search packages... box and a table with the columns PACKAGE, REQUESTED and STATUS. A new instance shows "No packages added yet." You need Admin access to install or remove packages.

Packages summary cards above the package table with three installed packages

Step 2: Install the package

  1. Click Install Package at the top right.
  2. In the dialog, type the name under Package name, or click one of the suggestions (pandas, numpy, qrcode, paramiko, pdfplumber, stripe, phonenumbers).
  3. Choose a version mode: Latest, Exact ==, or Minimum >=. For the last two, enter a version such as 2.2.3.
  4. Check the preview line, which shows the exact command that will run, for example pip install "pandas==2.2.3".
  5. Click Install Package.

Use the name the package has on PyPI, which is not always the import name. For example, Odoo may report yaml, but the package to install is PyYAML.

Install Package dialog with pandas suggestion, Exact version 2.2.3 and pip preview

Step 3: Wait for the install and restart

The package appears in the table with the status Installing…, and the Installing card shows that pip is running on the instance. Easy Instance runs pip inside the instance, records the package, and restarts the instance so Odoo loads it. Expect a short pause for users during the restart. You can leave the page; you get a notification when it finishes.

When it is done, a message confirms the package was installed and its row shows Installed. The REQUESTED column shows the version you asked for, or latest, not the exact version pip resolved.

Package table with pandas==2.2.3 row showing Installed status

Step 4: Activate the module again

Go back to Odoo Apps and click Activate on the module. If Odoo names another missing package, repeat Steps 2 and 3 for it until the module installs.

Keep and remove packages

  • Persistence: every package you add is installed again automatically whenever the instance restarts or is redeployed.
  • Staging: when you create a staging environment, the copy gets the same package list. That makes staging a good place to try a new package first.
  • Removing: click the trash icon on a row and confirm. The package is uninstalled from the instance, and modules that import it stop loading, so uninstall those modules first.

Easy Instance does not read requirements.txt from a linked repository. If your custom modules from GitHub need libraries, add each one here. Modules you add from the Marketplace follow the same rule.

Managed Odoo with no server access needed

Packages, GitHub deploys, a browser shell and logs are part of every Easy Instance plan. See features and pricing, or start a 10-day free trial with no credit card.

Rather not run the server yourself?

Get managed Odoo hosting with backups, SSL, monitoring and updates handled for you. Free for 10 days.