Skip to content

Install script does not install psycopg2 if PgSQL is requested #9789

@DanielO

Description

@DanielO

Please verify that this bug has NOT been raised before.

  • I checked and didn't find a similar issue

Describe the bug*

The install script does not install psycopg2 into the venv (or allow use of the system wide package) so the install fails if you want to use PgSQL.

Steps to Reproduce

I am running the installer like so:

sudo env INVENTREE_DB_ENGINE=postgresql INVENTREE_DB_NAME=inventree INVENTREE_DB_USER=inventree INVENTREE_DB_PASSWORD=mydbpassword INVENTREE_DB_HOST=mydbhost INVENTREE_DB_PORT=5432 bash install.sh

Expected behaviour

The installer would add the psycopg2 package if it detects PGSQL as the DB engine.

Deployment Method

Bare metal

Version Information

n/a

Try to reproduce on the demo site

I did not try to reproduce

Is the bug reproducible on the demo site?

Not reproducible

Relevant log output

### Installer for InvenTree - source: inventree/stable
### Detected distribution: Debian GNU/Linux 12
### Installing required packages for download
### Getting and adding key
### Adding package source
### Updating package lists
Get:1 file:/etc/apt/mirrors/debian.list Mirrorlist [30 B]
Get:5 file:/etc/apt/mirrors/debian-security.list Mirrorlist [39 B]
Hit:2 https://deb.debian.org/debian bookworm InRelease
Hit:3 https://deb.debian.org/debian bookworm-updates InRelease
Hit:4 https://deb.debian.org/debian bookworm-backports InRelease
Hit:6 https://deb.debian.org/debian-security bookworm-security InRelease
Get:7 https://dl.packager.io/srv/deb/inventree/InvenTree/stable/debian 11 InRelease [1857 B]
Fetched 1857 B in 2s (785 B/s)
Reading package lists... Done
### Setting installer args
### Installing InvenTree
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
  inventree
0 upgraded, 1 newly installed, 0 to remove and 78 not upgraded.
Need to get 0 B/74.3 MB of archives.
After this operation, 177 MB of additional disk space will be used.
Selecting previously unselected package inventree.
(Reading database ... 35540 files and directories currently installed.)
Preparing to unpack .../inventree_0.17.13-1748894721.2a7f5f94.bullseye_amd64.deb ...
# PRI01| Running preinstall script - start - Mon Jun 16 07:40:48 UTC 2025
# PRI02| No python environment found - skipping
# PRI03| Running preinstall script - done - Mon Jun 16 07:40:48 UTC 2025
Unpacking inventree (0.17.13-1748894721.2a7f5f94.bullseye) ...
Setting up inventree (0.17.13-1748894721.2a7f5f94.bullseye) ...
# POI01| Running postinstall script - start - Mon Jun 16 07:40:52 UTC 2025
# POI01| Importing functions
# POI01| Functions imported
# POI03| Setting base environment variables
# POI03| No config file found: /etc/inventree/config.yaml, using envs or defaults
# POI03| Collected environment variables:
# POI03|    INVENTREE_MEDIA_ROOT=/opt/inventree/data/media
# POI03|    INVENTREE_STATIC_ROOT=/opt/inventree/data/static
# POI03|    INVENTREE_BACKUP_DIR=/opt/inventree/data/backup
# POI03|    INVENTREE_PLUGINS_ENABLED=true
# POI03|    INVENTREE_PLUGIN_FILE=/etc/inventree/plugins.txt
# POI03|    INVENTREE_SECRET_KEY_FILE=/etc/inventree/secret_key.txt
# POI03|    INVENTREE_DB_ENGINE=postgresql
# POI03|    INVENTREE_DB_NAME=inventree
# POI03|    INVENTREE_DB_USER=inventree
# POI03|    INVENTREE_DB_HOST=pgsql.gsoft.com.au
# POI03|    INVENTREE_DB_PORT=5432
# POI04| Running in docker: no
# POI05| Using init command: systemctl
# POI06| Getting the IP address of the server via web service
# POI06| IP address is 203.31.81.122
# POI07| No python environment found - using environment variable: python3.9
# POI07| Trying to detecting python3.9 to python3.12 - using newest version
# POI07| Checking for python3.12
# POI07| Checking for python3.11
# POI07| Found python3.11 installed - using for setup python3.11
# POI07| Using python command: python3.11
# POI08| Checking if update checks are needed
# POI08| Running upgrade
# POI08| Old version is: 0.17.13-1748894721.2a7f5f94.bullseye | 17 - updating to 0.17.13-1748894721.2a7f5f94.bullseye | 17
# POI09| Setting up python environment
Collecting invoke
  Using cached invoke-2.2.0-py3-none-any.whl (160 kB)
Collecting wheel
  Using cached wheel-0.45.1-py3-none-any.whl (72 kB)
Installing collected packages: wheel, invoke
Successfully installed invoke-2.2.0 wheel-0.45.1
# POI09| Stopping nginx
# POI09| Stopped nginx
# POI09| Setting up nginx to /etc/nginx/sites-enabled/inventree.conf
# POI09| Starting nginx
# POI09| Started nginx
# POI09| (Re)creating init scripts
Nothing to do.
Nothing to do.
# POI09| Enabling InvenTree on boot
# POI09| Enabled InvenTree on boot
# POI10| Creating admin user data
# POI11| Stopping InvenTree
# POI11| Stopped InvenTree
# POI12| Updating InvenTree
Requirement already satisfied: wheel in ./env/lib/python3.11/site-packages (0.45.1)
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
django-money 3.2.0 requires py-moneyed<3.1,>=2.0, which is not installed.
# POI12| u | Updating InvenTree installation...
# POI12| u | Installing required python packages from '/opt/inventree/src/backend/requirements.txt'
# POI12| u | Requirement already satisfied: pip in ./env/lib/python3.11/site-packages (23.0.1)
# POI12| u | Collecting pip
# POI12| u |   Downloading pip-25.1.1-py3-none-any.whl (1.8 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 6.4 MB/s eta 0:00:00
# POI12| u | Requirement already satisfied: setuptools in ./env/lib/python3.11/site-packages (66.1.1)
# POI12| u | Collecting setuptools
# POI12| u |   Downloading setuptools-80.9.0-py3-none-any.whl (1.2 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 6.6 MB/s eta 0:00:00
# POI12| u | Installing collected packages: setuptools, pip
# POI12| u |   Attempting uninstall: setuptools
# POI12| u |     Found existing installation: setuptools 66.1.1
# POI12| u |     Uninstalling setuptools-66.1.1:
# POI12| u |       Successfully uninstalled setuptools-66.1.1
# POI12| u |   Attempting uninstall: pip
# POI12| u |     Found existing installation: pip 23.0.1
# POI12| u |     Uninstalling pip-23.0.1:
# POI12| u |       Successfully uninstalled pip-23.0.1
# POI12| u | Successfully installed pip-25.1.1 setuptools-80.9.0
# POI12| u | Collecting asgiref==3.8.1 (from -r /opt/inventree/src/backend/requirements.txt (line 3))
# POI12| u |   Downloading asgiref-3.8.1-py3-none-any.whl (23 kB)
# POI12| u | Collecting async-timeout==5.0.1 (from -r /opt/inventree/src/backend/requirements.txt (line 11))
# POI12| u |   Downloading async_timeout-5.0.1-py3-none-any.whl (6.2 kB)
# POI12| u | Collecting attrs==24.2.0 (from -r /opt/inventree/src/backend/requirements.txt (line 15))
# POI12| u |   Downloading attrs-24.2.0-py3-none-any.whl (63 kB)
# POI12| u | Collecting babel==2.16.0 (from -r /opt/inventree/src/backend/requirements.txt (line 21))
# POI12| u |   Downloading babel-2.16.0-py3-none-any.whl (9.6 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 9.6/9.6 MB 6.5 MB/s eta 0:00:00
# POI12| u | Collecting bleach==6.2.0 (from bleach[css]==6.2.0->-r /opt/inventree/src/backend/requirements.txt (line 25))
# POI12| u |   Downloading bleach-6.2.0-py3-none-any.whl (163 kB)
# POI12| u | Collecting brotli==1.1.0 (from -r /opt/inventree/src/backend/requirements.txt (line 29))
# POI12| u |   Downloading Brotli-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (2.9 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.9/2.9 MB 6.5 MB/s eta 0:00:00
# POI12| u | Collecting certifi==2024.8.30 (from -r /opt/inventree/src/backend/requirements.txt (line 156))
# POI12| u |   Downloading certifi-2024.8.30-py3-none-any.whl (167 kB)
# POI12| u | Requirement already satisfied: cffi==1.17.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 162)) (1.17.1)
# POI12| u | Collecting charset-normalizer==3.4.0 (from -r /opt/inventree/src/backend/requirements.txt (line 233))
# POI12| u |   Downloading charset_normalizer-3.4.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (142 kB)
# POI12| u | Requirement already satisfied: coreapi==2.3.3 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 340)) (2.3.3)
# POI12| u | Requirement already satisfied: coreschema==0.0.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 344)) (0.0.4)
# POI12| u | Requirement already satisfied: cryptography==43.0.3 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 348)) (43.0.3)
# POI12| u | Requirement already satisfied: cssselect2==0.7.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 379)) (0.7.0)
# POI12| u | Collecting defusedxml==0.7.1 (from -r /opt/inventree/src/backend/requirements.txt (line 383))
# POI12| u |   Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
# POI12| u | Requirement already satisfied: deprecated==1.2.15 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 389)) (1.2.15)
# POI12| u | Collecting diff-match-patch==20241021 (from -r /opt/inventree/src/backend/requirements.txt (line 397))
# POI12| u |   Downloading diff_match_patch-20241021-py3-none-any.whl (43 kB)
# POI12| u | Requirement already satisfied: dj-rest-auth==7.0.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 401)) (7.0.0)
# POI12| u | Requirement already satisfied: django==4.2.17 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 404)) (4.2.17)
# POI12| u | Requirement already satisfied: django-allauth==65.2.0 in ./env/lib/python3.11/site-packages (from django-allauth[openid,saml]==65.2.0->-r /opt/inventree/src/backend/requirements.txt (line 440)) (65.2.0)
# POI12| u | Requirement already satisfied: django-allauth-2fa==0.11.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 445)) (0.11.1)
# POI12| u | Collecting django-cleanup==9.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 449))
# POI12| u |   Downloading django_cleanup-9.0.0-py3-none-any.whl (10 kB)
# POI12| u | Requirement already satisfied: django-cors-headers==4.6.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 453)) (4.6.0)
# POI12| u | Collecting django-crispy-forms==1.14.0 (from -r /opt/inventree/src/backend/requirements.txt (line 457))
# POI12| u |   Downloading django_crispy_forms-1.14.0-py3-none-any.whl (133 kB)
# POI12| u | Requirement already satisfied: django-dbbackup==4.2.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 461)) (4.2.1)
# POI12| u | Requirement already satisfied: django-error-report-2==0.4.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 465)) (0.4.2)
# POI12| u | Requirement already satisfied: django-filter==24.3 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 469)) (24.3)
# POI12| u | Requirement already satisfied: django-flags==5.0.13 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 473)) (5.0.13)
# POI12| u | Requirement already satisfied: django-formtools==2.5.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 477)) (2.5.1)
# POI12| u | Requirement already satisfied: django-ical==1.9.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 481)) (1.9.2)
# POI12| u | Requirement already satisfied: django-import-export==3.3.9 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 485)) (3.3.9)
# POI12| u | Requirement already satisfied: django-ipware==7.0.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 489)) (7.0.1)
# POI12| u | Requirement already satisfied: django-js-asset==2.2.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 493)) (2.2.0)
# POI12| u | Collecting django-maintenance-mode==0.21.1 (from -r /opt/inventree/src/backend/requirements.txt (line 497))
# POI12| u |   Downloading django_maintenance_mode-0.21.1-py3-none-any.whl (16 kB)
# POI12| u | Requirement already satisfied: django-markdownify==0.9.5 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 501)) (0.9.5)
# POI12| u | Requirement already satisfied: django-money==3.2.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 505)) (3.2.0)
# POI12| u | Requirement already satisfied: django-mptt==0.16.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 509)) (0.16.0)
# POI12| u | Requirement already satisfied: django-otp==1.5.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 513)) (1.5.4)
# POI12| u | Requirement already satisfied: django-picklefield==3.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 517)) (3.2)
# POI12| u | Requirement already satisfied: django-q-sentry==0.1.6 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 521)) (0.1.6)
# POI12| u | Requirement already satisfied: django-q2==1.7.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 524)) (1.7.4)
# POI12| u | Requirement already satisfied: django-recurrence==1.11.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 528)) (1.11.1)
# POI12| u | Requirement already satisfied: django-redis==5.4.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 532)) (5.4.0)
# POI12| u | Requirement already satisfied: django-sesame==3.2.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 536)) (3.2.2)
# POI12| u | Requirement already satisfied: django-sql-utils==0.7.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 540)) (0.7.0)
# POI12| u | Requirement already satisfied: django-sslserver==0.22 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 544)) (0.22)
# POI12| u | Requirement already satisfied: django-stdimage==6.0.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 547)) (6.0.2)
# POI12| u | Requirement already satisfied: django-structlog==8.1.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 551)) (8.1.0)
# POI12| u | Requirement already satisfied: django-taggit==6.1.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 555)) (6.1.0)
# POI12| u | Requirement already satisfied: django-user-sessions==2.0.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 559)) (2.0.0)
# POI12| u | Requirement already satisfied: django-weasyprint==2.3.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 563)) (2.3.0)
# POI12| u | Requirement already satisfied: django-xforwardedfor-middleware==2.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 567)) (2.0)
# POI12| u | Requirement already satisfied: djangorestframework==3.14.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 570)) (3.14.0)
# POI12| u | Requirement already satisfied: djangorestframework-simplejwt==5.3.1 in ./env/lib/python3.11/site-packages (from djangorestframework-simplejwt[crypto]==5.3.1->-r /opt/inventree/src/backend/requirements.txt (line 578)) (5.3.1)
# POI12| u | Requirement already satisfied: drf-spectacular==0.27.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 582)) (0.27.2)
# POI12| u | Requirement already satisfied: dulwich==0.22.6 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 586)) (0.22.6)
# POI12| u | Collecting et-xmlfile==2.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 630))
# POI12| u |   Downloading et_xmlfile-2.0.0-py3-none-any.whl (18 kB)
# POI12| u | Collecting feedparser==6.0.11 (from -r /opt/inventree/src/backend/requirements.txt (line 634))
# POI12| u |   Downloading feedparser-6.0.11-py3-none-any.whl (81 kB)
# POI12| u | Requirement already satisfied: flexcache==0.3 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 638)) (0.3)
# POI12| u | Requirement already satisfied: flexparser==0.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 642)) (0.4)
# POI12| u | Collecting fonttools==4.55.0 (from fonttools[woff]==4.55.0->-r /opt/inventree/src/backend/requirements.txt (line 646))
# POI12| u |   Downloading fonttools-4.55.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.9 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.9/4.9 MB 6.6 MB/s eta 0:00:00
# POI12| u | Requirement already satisfied: googleapis-common-protos==1.66.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 698)) (1.66.0)
# POI12| u | Collecting grpcio==1.68.0 (from -r /opt/inventree/src/backend/requirements.txt (line 704))
# POI12| u |   Downloading grpcio-1.68.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.9 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.9/5.9 MB 6.5 MB/s eta 0:00:00
# POI12| u | Requirement already satisfied: gunicorn==23.0.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 763)) (23.0.0)
# POI12| u | Requirement already satisfied: html5lib==1.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 767)) (1.1)
# POI12| u | Requirement already satisfied: icalendar==6.1.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 771)) (6.1.0)
# POI12| u | Collecting idna==3.10 (from -r /opt/inventree/src/backend/requirements.txt (line 775))
# POI12| u |   Downloading idna-3.10-py3-none-any.whl (70 kB)
# POI12| u | Requirement already satisfied: importlib-metadata==8.5.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 779)) (8.5.0)
# POI12| u | Collecting inflection==0.5.1 (from -r /opt/inventree/src/backend/requirements.txt (line 786))
# POI12| u |   Downloading inflection-0.5.1-py2.py3-none-any.whl (9.5 kB)
# POI12| u | Collecting isodate==0.7.2 (from -r /opt/inventree/src/backend/requirements.txt (line 790))
# POI12| u |   Downloading isodate-0.7.2-py3-none-any.whl (22 kB)
# POI12| u | Collecting itypes==1.2.0 (from -r /opt/inventree/src/backend/requirements.txt (line 794))
# POI12| u |   Downloading itypes-1.2.0-py2.py3-none-any.whl (4.8 kB)
# POI12| u | Requirement already satisfied: jinja2==3.1.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 798)) (3.1.4)
# POI12| u | Requirement already satisfied: jsonschema==4.23.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 802)) (4.23.0)
# POI12| u | Requirement already satisfied: jsonschema-specifications==2024.10.1 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 806)) (2024.10.1)
# POI12| u | Collecting lxml==5.3.0 (from -r /opt/inventree/src/backend/requirements.txt (line 810))
# POI12| u |   Downloading lxml-5.3.0-cp311-cp311-manylinux_2_28_x86_64.whl (5.0 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.0/5.0 MB 6.6 MB/s eta 0:00:00
# POI12| u | Collecting markdown==3.7 (from -r /opt/inventree/src/backend/requirements.txt (line 952))
# POI12| u |   Downloading Markdown-3.7-py3-none-any.whl (106 kB)
# POI12| u | Collecting markuppy==1.14 (from -r /opt/inventree/src/backend/requirements.txt (line 956))
# POI12| u |   Downloading MarkupPy-1.14.tar.gz (6.8 kB)
# POI12| u |   Preparing metadata (setup.py): started
# POI12| u |   Preparing metadata (setup.py): finished with status 'done'
# POI12| u | Collecting markupsafe==3.0.2 (from -r /opt/inventree/src/backend/requirements.txt (line 959))
# POI12| u |   Downloading MarkupSafe-3.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (23 kB)
# POI12| u | Collecting odfpy==1.4.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1022))
# POI12| u |   Downloading odfpy-1.4.1.tar.gz (717 kB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 717.0/717.0 kB 6.7 MB/s eta 0:00:00
# POI12| u |   Preparing metadata (setup.py): started
# POI12| u |   Preparing metadata (setup.py): finished with status 'done'
# POI12| u | Collecting openpyxl==3.1.5 (from -r /opt/inventree/src/backend/requirements.txt (line 1025))
# POI12| u |   Downloading openpyxl-3.1.5-py2.py3-none-any.whl (250 kB)
# POI12| u | Requirement already satisfied: opentelemetry-api==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1029)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-exporter-otlp==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1043)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-exporter-otlp-proto-common==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1047)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-exporter-otlp-proto-grpc==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1053)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-exporter-otlp-proto-http==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1057)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-instrumentation==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1061)) (0.49b2)
# POI12| u | Requirement already satisfied: opentelemetry-instrumentation-django==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1069)) (0.49b2)
# POI12| u | Requirement already satisfied: opentelemetry-instrumentation-redis==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1073)) (0.49b2)
# POI12| u | Requirement already satisfied: opentelemetry-instrumentation-requests==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1077)) (0.49b2)
# POI12| u | Requirement already satisfied: opentelemetry-instrumentation-wsgi==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1081)) (0.49b2)
# POI12| u | Collecting opentelemetry-proto==1.28.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1085))
# POI12| u |   Downloading opentelemetry_proto-1.28.2-py3-none-any.whl (55 kB)
# POI12| u | Requirement already satisfied: opentelemetry-sdk==1.28.2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1092)) (1.28.2)
# POI12| u | Requirement already satisfied: opentelemetry-semantic-conventions==0.49b2 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1099)) (0.49b2)
# POI12| u | Collecting opentelemetry-util-http==0.49b2 (from -r /opt/inventree/src/backend/requirements.txt (line 1109))
# POI12| u |   Downloading opentelemetry_util_http-0.49b2-py3-none-any.whl (6.9 kB)
# POI12| u | Collecting packaging==24.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1116))
# POI12| u |   Downloading packaging-24.2-py3-none-any.whl (65 kB)
# POI12| u | Collecting pdf2image==1.17.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1122))
# POI12| u |   Downloading pdf2image-1.17.0-py3-none-any.whl (11 kB)
# POI12| u | Collecting pillow==11.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1126))
# POI12| u |   Downloading pillow-11.0.0-cp311-cp311-manylinux_2_28_x86_64.whl (4.4 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.4/4.4 MB 6.6 MB/s eta 0:00:00
# POI12| u | Requirement already satisfied: pint==0.24.4 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1209)) (0.24.4)
# POI12| u | Collecting pip-licenses==5.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1213))
# POI12| u |   Downloading pip_licenses-5.0.0-py3-none-any.whl (20 kB)
# POI12| u | Collecting platformdirs==4.3.6 (from -r /opt/inventree/src/backend/requirements.txt (line 1217))
# POI12| u |   Downloading platformdirs-4.3.6-py3-none-any.whl (18 kB)
# POI12| u | Collecting prettytable==3.12.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1221))
# POI12| u |   Downloading prettytable-3.12.0-py3-none-any.whl (31 kB)
# POI12| u | Collecting protobuf==5.28.3 (from -r /opt/inventree/src/backend/requirements.txt (line 1225))
# POI12| u |   Downloading protobuf-5.28.3-cp38-abi3-manylinux2014_x86_64.whl (316 kB)
# POI12| u | Collecting py-moneyed==3.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1240))
# POI12| u |   Downloading py_moneyed-3.0-py3-none-any.whl (11 kB)
# POI12| u | Collecting pycparser==2.22 (from -r /opt/inventree/src/backend/requirements.txt (line 1244))
# POI12| u |   Downloading pycparser-2.22-py3-none-any.whl (117 kB)
# POI12| u | Collecting pydyf==0.10.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1248))
# POI12| u |   Downloading pydyf-0.10.0-py3-none-any.whl (8.1 kB)
# POI12| u | Collecting pyjwt==2.10.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1254))
# POI12| u |   Downloading PyJWT-2.10.1-py3-none-any.whl (22 kB)
# POI12| u | Collecting pyphen==0.17.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1258))
# POI12| u |   Downloading pyphen-0.17.0-py3-none-any.whl (2.1 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.1/2.1 MB 6.6 MB/s eta 0:00:00
# POI12| u | Collecting python-barcode==0.15.1 (from python-barcode[images]==0.15.1->-r /opt/inventree/src/backend/requirements.txt (line 1262))
# POI12| u |   Downloading python_barcode-0.15.1-py3-none-any.whl (212 kB)
# POI12| u | Collecting python-dateutil==2.9.0.post0 (from -r /opt/inventree/src/backend/requirements.txt (line 1266))
# POI12| u |   Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)
# POI12| u | Collecting python-dotenv==1.0.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1272))
# POI12| u |   Downloading python_dotenv-1.0.1-py3-none-any.whl (19 kB)
# POI12| u | Collecting python-fsutil==0.14.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1276))
# POI12| u |   Downloading python_fsutil-0.14.1-py3-none-any.whl (16 kB)
# POI12| u | Collecting python-ipware==3.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1280))
# POI12| u |   Downloading python_ipware-3.0.0-py3-none-any.whl (10 kB)
# POI12| u | Collecting python3-openid==3.2.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1284))
# POI12| u |   Downloading python3_openid-3.2.0-py3-none-any.whl (133 kB)
# POI12| u | Requirement already satisfied: python3-saml==1.16.0 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1288)) (1.16.0)
# POI12| u | Collecting pytz==2024.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1293))
# POI12| u |   Downloading pytz-2024.2-py2.py3-none-any.whl (508 kB)
# POI12| u | Collecting pyyaml==6.0.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1299))
# POI12| u |   Downloading PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (762 kB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 763.0/763.0 kB 6.8 MB/s eta 0:00:00
# POI12| u | Collecting qrcode==8.0 (from qrcode[pil]==8.0->-r /opt/inventree/src/backend/requirements.txt (line 1357))
# POI12| u |   Downloading qrcode-8.0-py3-none-any.whl (45 kB)
# POI12| u | Collecting rapidfuzz==3.10.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1363))
# POI12| u |   Downloading rapidfuzz-3.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.1 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.1/3.1 MB 6.6 MB/s eta 0:00:00
# POI12| u | Collecting redis==5.2.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1453))
# POI12| u |   Downloading redis-5.2.0-py3-none-any.whl (261 kB)
# POI12| u | Collecting referencing==0.35.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1457))
# POI12| u |   Downloading referencing-0.35.1-py3-none-any.whl (26 kB)
# POI12| u | Collecting requests==2.32.3 (from -r /opt/inventree/src/backend/requirements.txt (line 1463))
# POI12| u |   Downloading requests-2.32.3-py3-none-any.whl (64 kB)
# POI12| u | Collecting rpds-py==0.21.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1469))
# POI12| u |   Downloading rpds_py-0.21.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (360 kB)
# POI12| u | Collecting sentry-sdk==2.19.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1563))
# POI12| u |   Downloading sentry_sdk-2.19.0-py2.py3-none-any.whl (322 kB)
# POI12| u | Collecting setuptools==75.6.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1569))
# POI12| u |   Downloading setuptools-75.6.0-py3-none-any.whl (1.2 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 6.6 MB/s eta 0:00:00
# POI12| u | Collecting sgmllib3k==1.0.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1575))
# POI12| u |   Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)
# POI12| u |   Preparing metadata (setup.py): started
# POI12| u |   Preparing metadata (setup.py): finished with status 'done'
# POI12| u | Collecting six==1.16.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1578))
# POI12| u |   Downloading six-1.16.0-py2.py3-none-any.whl (11 kB)
# POI12| u | Collecting sqlparse==0.5.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1584))
# POI12| u |   Downloading sqlparse-0.5.2-py3-none-any.whl (44 kB)
# POI12| u | Collecting structlog==24.4.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1590))
# POI12| u |   Downloading structlog-24.4.0-py3-none-any.whl (67 kB)
# POI12| u | Collecting tablib==3.5.0 (from tablib[html,ods,xls,xlsx,yaml]==3.5.0->-r /opt/inventree/src/backend/requirements.txt (line 1594))
# POI12| u |   Downloading tablib-3.5.0-py3-none-any.whl (45 kB)
# POI12| u | Collecting tinycss2==1.4.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1600))
# POI12| u |   Downloading tinycss2-1.4.0-py3-none-any.whl (26 kB)
# POI12| u | Collecting tomli==2.1.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1607))
# POI12| u |   Downloading tomli-2.1.0-py3-none-any.whl (13 kB)
# POI12| u | Collecting typing-extensions==4.12.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1611))
# POI12| u |   Downloading typing_extensions-4.12.2-py3-none-any.whl (37 kB)
# POI12| u | Collecting tzdata==2024.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1622))
# POI12| u |   Downloading tzdata-2024.2-py2.py3-none-any.whl (346 kB)
# POI12| u | Collecting uritemplate==4.1.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1626))
# POI12| u |   Downloading uritemplate-4.1.1-py2.py3-none-any.whl (10 kB)
# POI12| u | Collecting urllib3==2.2.3 (from -r /opt/inventree/src/backend/requirements.txt (line 1632))
# POI12| u |   Downloading urllib3-2.2.3-py3-none-any.whl (126 kB)
# POI12| u | Collecting wcwidth==0.2.13 (from -r /opt/inventree/src/backend/requirements.txt (line 1639))
# POI12| u |   Downloading wcwidth-0.2.13-py2.py3-none-any.whl (34 kB)
# POI12| u | Requirement already satisfied: weasyprint==62.3 in ./env/lib/python3.11/site-packages (from -r /opt/inventree/src/backend/requirements.txt (line 1643)) (62.3)
# POI12  DEPRECATION: Building 'markuppy' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'markuppy'. Discussion can be found at https://github.com/pypa/pip/issues/6334
  DEPRECATION: Building 'odfpy' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'odfpy'. Discussion can be found at https://github.com/pypa/pip/issues/6334
  DEPRECATION: Building 'sgmllib3k' using the legacy setup.py bdist_wheel mechanism, which will be removed in a future version. pip 25.3 will enforce this behaviour change. A possible replacement is to use the standardized build interface by setting the `--use-pep517` option, (possibly combined with `--no-build-isolation`), or adding a `pyproject.toml` file to the source tree of 'sgmllib3k'. Discussion can be found at https://github.com/pypa/pip/issues/6334
| u | Collecting webencodings==0.5.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1649))
# POI12| u |   Downloading webencodings-0.5.1-py2.py3-none-any.whl (11 kB)
# POI12| u | Collecting whitenoise==6.8.2 (from -r /opt/inventree/src/backend/requirements.txt (line 1657))
# POI12| u |   Downloading whitenoise-6.8.2-py3-none-any.whl (20 kB)
# POI12| u | Collecting wrapt==1.17.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1661))
# POI12| u |   Downloading wrapt-1.17.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (83 kB)
# POI12| u | Collecting xlrd==2.0.1 (from -r /opt/inventree/src/backend/requirements.txt (line 1731))
# POI12| u |   Downloading xlrd-2.0.1-py2.py3-none-any.whl (96 kB)
# POI12| u | Collecting xlwt==1.3.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1735))
# POI12| u |   Downloading xlwt-1.3.0-py2.py3-none-any.whl (99 kB)
# POI12| u | Collecting xmlsec==1.3.14 (from -r /opt/inventree/src/backend/requirements.txt (line 1739))
# POI12| u |   Downloading xmlsec-1.3.14-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.9/3.9 MB 6.6 MB/s eta 0:00:00
# POI12| u | Collecting zipp==3.21.0 (from -r /opt/inventree/src/backend/requirements.txt (line 1799))
# POI12| u |   Downloading zipp-3.21.0-py3-none-any.whl (9.6 kB)
# POI12| u | Collecting zopfli==0.2.3.post1 (from -r /opt/inventree/src/backend/requirements.txt (line 1803))
# POI12| u |   Downloading zopfli-0.2.3.post1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (850 kB)
# POI12| u |      ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 850.6/850.6 kB 6.7 MB/s eta 0:00:00
# POI12| u | Building wheels for collected packages: markuppy, odfpy, sgmllib3k
# POI12| u |   Building wheel for markuppy (setup.py): started
# POI12| u |   Building wheel for markuppy (setup.py): finished with status 'done'
# POI12| u |   Created wheel for markuppy: filename=markuppy-1.14-py3-none-any.whl size=7443 sha256=a2274cd08c65b0848f76219188b8fd08b52badfb0aa0a2ea6ff9f759b9466fc5
# POI12| u |   Stored in directory: /tmp/pip-ephem-wheel-cache-9imjyg3a/wheels/4d/83/85/4144e41de737bc3e1519ceec0e77b4701bd5c7584fecc32e09
# POI12| u |   Building wheel for odfpy (setup.py): started
# POI12| u |   Building wheel for odfpy (setup.py): finished with status 'done'
# POI12| u |   Created wheel for odfpy: filename=odfpy-1.4.1-py2.py3-none-any.whl size=160717 sha256=134463085718be273a52ef764face6fa161986eb8c5edf4a1ff865ced99d52ec
# POI12| u |   Stored in directory: /tmp/pip-ephem-wheel-cache-9imjyg3a/wheels/d6/1d/c8/8c29be1d73ca42d15977c75193d9f39a98499413c2838ac54c
# POI12| u |   Building wheel for sgmllib3k (setup.py): started
# POI12| u |   Building wheel for sgmllib3k (setup.py): finished with status 'done'
# POI12| u |   Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6089 sha256=e2a361f998384544e1e410f2d128734a69d645835cddc19e1baa3ba39ab49e1e
# POI12| u |   Stored in directory: /tmp/pip-ephem-wheel-cache-9imjyg3a/wheels/3b/25/2a/105d6a15df6914f4d15047691c6c28f9052cc1173e40285d03
# POI12| u | Successfully built markuppy odfpy sgmllib3k
# POI12| u | Installing collected packages: xlwt, webencodings, wcwidth, sgmllib3k, pytz, python-fsutil, python-barcode, markuppy, itypes, brotli, zopfli, zipp, xlrd, wrapt, whitenoise, urllib3, uritemplate, tzdata, typing-extensions, tomli, tinycss2, tablib, structlog, sqlparse, six, setuptools, rpds-py, rapidfuzz, qrcode, pyyaml, python-ipware, python-dotenv, pyphen, pyjwt, pydyf, pycparser, protobuf, prettytable, platformdirs, pillow, packaging, opentelemetry-util-http, markupsafe, markdown, lxml, isodate, inflection, idna, grpcio, fonttools, feedparser, et-xmlfile, django-maintenance-mode, django-crispy-forms, django-cleanup, diff-match-patch, defusedxml, charset-normalizer, certifi, bleach, babel, attrsPlugin configuration file does not exist - creating default file
Traceback (most recent call last):
  File "/opt/inventree/env/lib/python3.11/site-packages/django/core/management/__init__.py", line 255, in fetch_command
    app_name = commands[subcommand]
               ~~~~~~~~^^^^^^^^^^^^
KeyError: 'collectplugins'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/inventree/env/lib/python3.11/site-packages/django/db/backends/postgresql/psycopg_any.py", line 5, in <module>
    from psycopg import ClientCursor, IsolationLevel, adapt, adapters, errors, sql
ModuleNotFoundError: No module named 'psycopg'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/opt/inventree/src/backend/InvenTree/manage.py", line 24, in <module>
    main()
  File "/opt/inventree/src/backend/InvenTree/manage.py", line 20, in main
    execute_from_command_line(sys.argv)
  File "/opt/inventree/env/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
    utility.execute()
  File "/opt/inventree/env/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/inventree/env/lib/python3.11/site-packages/django/core/management/__init__.py", line 262, in fetch_command
    settings.INSTALLED_APPS
  File "/opt/inventree/env/lib/python3.11/site-packages/django/conf/__init__.py", line 102, in __getattr__
    self._setup(name)
  File "/opt/inventree/env/lib/python3.11/site-packages/django/conf/__init__.py", line 89, in _setup
    self._wrapped = Settings(settings_module)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/inventree/env/lib/python3.11/site-packages/django/conf/__init__.py", line 217, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1206, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/opt/inventree/src/backend/InvenTree/InvenTree/settings.py", line 739, in <module>
    from django.db.backends.postgresql.psycopg_any import IsolationLevel
  File "/opt/inventree/env/lib/python3.11/site-packages/django/db/backends/postgresql/psycopg_any.py", line 77, in <module>
    from psycopg2 import errors, extensions, sql  # NOQA
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
ModuleNotFoundError: No module named 'psycopg2'
, async-timeout, asgiref, xmlsec, sentry-sdk, requests, referencing, redis, python3-openid, python-dateutil, py-moneyed, pip-licenses, pdf2image, opentelemetry-proto, openpyxl, odfpy
# POI12| u |   Attempting uninstall: setuptools
# POI12| u |     Found existing installation: setuptools 80.9.0
# POI12| u |     Uninstalling setuptools-80.9.0:
# POI12| u |       Successfully uninstalled setuptools-80.9.0
# POI12| u |
# POI12| u | Successfully installed asgiref-3.8.1 async-timeout-5.0.1 attrs-24.2.0 babel-2.16.0 bleach-6.2.0 brotli-1.1.0 certifi-2024.8.30 charset-normalizer-3.4.0 defusedxml-0.7.1 diff-match-patch-20241021 django-cleanup-9.0.0 django-crispy-forms-1.14.0 django-maintenance-mode-0.21.1 et-xmlfile-2.0.0 feedparser-6.0.11 fonttools-4.55.0 grpcio-1.68.0 idna-3.10 inflection-0.5.1 isodate-0.7.2 itypes-1.2.0 lxml-5.3.0 markdown-3.7 markuppy-1.14 markupsafe-3.0.2 odfpy-1.4.1 openpyxl-3.1.5 opentelemetry-proto-1.28.2 opentelemetry-util-http-0.49b2 packaging-24.2 pdf2image-1.17.0 pillow-11.0.0 pip-licenses-5.0.0 platformdirs-4.3.6 prettytable-3.12.0 protobuf-5.28.3 py-moneyed-3.0 pycparser-2.22 pydyf-0.10.0 pyjwt-2.10.1 pyphen-0.17.0 python-barcode-0.15.1 python-dateutil-2.9.0.post0 python-dotenv-1.0.1 python-fsutil-0.14.1 python-ipware-3.0.0 python3-openid-3.2.0 pytz-2024.2 pyyaml-6.0.2 qrcode-8.0 rapidfuzz-3.10.1 redis-5.2.0 referencing-0.35.1 requests-2.32.3 rpds-py-0.21.0 sentry-sdk-2.19.0 setuptools-75.6.0 sgmllib3k-1.0.0 six-1.16.0 sqlparse-0.5.2 structlog-24.4.0 tablib-3.5.0 tinycss2-1.4.0 tomli-2.1.0 typing-extensions-4.12.2 tzdata-2024.2 uritemplate-4.1.1 urllib3-2.2.3 wcwidth-0.2.13 webencodings-0.5.1 whitenoise-6.8.2 wrapt-1.17.0 xlrd-2.0.1 xlwt-1.3.0 xmlsec-1.3.14 zipp-3.21.0 zopfli-0.2.3.post1
# POI12| u | Installing plugin packages from '/etc/inventree/plugins.txt'
# POI12| u | Python version 3.11.2 - /opt/inventree/env/bin/python3
# POI12| u | InvenTree configuration file 'config.yaml' not found - creating default file
# POI12| u | Created config file /etc/inventree/config.yaml
# POI12| u | Adding plugin sample static content
# POI12| u | - /opt/inventree/src/backend/InvenTree/plugin/samples/static
# POI12| u | Python version 3.11.2 - /opt/inventree/env/bin/python3
# POI12| u | Adding plugin sample static content
# POI12| u | - /opt/inventree/src/backend/InvenTree/plugin/samples/static
# POI12| u | ERROR: InvenTree command failed: 'python3 manage.py collectplugins'
# POI12| u | - Refer to the error messages in the log above for more information
# POI12| Set permissions for data dir and media: /opt/inventree/data
# POI13| Setting up InvenTree config values
# POI13| Writing the settings to the config file /etc/inventree/config.yaml
# POI13| Done setting up InvenTree config values
# POI14| Setting up InvenTree site URL
# POI15| Starting InvenTree
# POI15| Started InvenTree
# POI16| Printing Final message
####################################################################################
This InvenTree install uses nginx, the settings for the webserver can be found in
/etc/nginx/sites-enabled/inventree.conf
Try opening InvenTree with either
http://localhost/ or http://203.31.81.122/

Admin user data:
   Email: [email protected]
   Username: admin
   Password: <deleted>
####################################################################################
# POI17| Running postinstall script - done - Mon Jun 16 07:41:43 UTC 2025
### Install done!

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementThis is an suggested enhancement or new featureinstallerquestionThis is a questionsetupRelates to the InvenTree setup / installation process

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions