Problem after installing 0.16.2
Deployment Method
- [x] Installer
- [ ] Docker Development
- [ ] Docker Production
- [ ] Bare metal Development
- [ ] Bare metal Production
- [ ] Digital Ocean image
- [ ] Other (please provide a link
Steps to Reproduce
Describe the problem*
After update to 0.16.2 i get OSError: No translation files found for default language en-us.
Steps to Reproduce
I just run inventree run cli update
Relevant log output
Installing plugin packages from '/etc/inventree/plugins.txt'
Python version 3.11.2 - /opt/inventree/env/bin/python3
Traceback (most recent call last):
File "/opt/inventree/src/backend/InvenTree/manage.py", line 24, in
Hi - confirm that - absolutely same logs. My test env is based on packager.io - so I trried to update 0.16.3 through packager.io , but it still try to install 0.16.2 . Pavel
I'm having the same issue. Upgraded from 0.16.1 to 0.16.3 and inventree no longer starts up. Tried downgrading back to 0.16.1 but that didn't fix it. I should really start taking snapshots before these upgrades :(
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: "verbose_name": _("%(from)s-%(to)s relationship")
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/functional.py", line 191, in __mod__
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: return str(self) % rhs
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/functional.py", line 155, in __text_cast
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: return func(*self.__args, **self.__kw)
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/translation/__init__.py", line 95, in gettext
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: return _trans.gettext(message)
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 380, in gettext
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: _default = _default or translation(settings.LANGUAGE_CODE)
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 293, in translation
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: _translations[language] = DjangoTranslation(language)
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/translation/trans_real.py", line 179, in __init__
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: raise OSError(
Sep 22 10:21:44 inventree-server inventree-web-1.service[445283]: OSError: No translation files found for default language en-us.
I found the issue - looks like all the language files are missing.
For example under
opt/inventree/env/lib/python3.9/site-packages/rest_framework/locale/en_US/LC_MESSAGES
The folder is empty, this is the same for every language.
I checked on a older backup I had and the django.mo file is missing. I copied this file for just the en_US language and I'm now able to start inventree up and it's again working. (Other languages are all still broken)
Old test server:
root@inventree-server:/opt/inventree/env/lib/python3.9/site-packages/rest_framework/locale# find -name django.mo | wc -l
59
root@inventree-server:/opt/inventree/env/lib/python3.9/site-packages/rest_framework/locale/en_US/LC_MESSAGES# ls -la
total 12
drwxrwxr-x 2 inventree inventree 4096 Sep 22 11:11 .
drwxrwxr-x 3 inventree inventree 4096 May 20 11:33 ..
-rw-rw-r-- 1 inventree inventree 337 Sep 22 11:11 django.mo
Upgraded to 0.16.3 (With my fix):
root@inventree-server:/opt/inventree/env/lib/python3.9/site-packages/rest_framework/locale# find -name django.mo | wc -l
1
0.16.3 Prior to my fix:
root@inventree-server:/opt/inventree/env/lib/python3.9/site-packages/rest_framework/locale/en_US/LC_MESSAGES# ls -la
total 8
drwxrwxr-x 2 inventree inventree 4096 Sep 22 10:10 .
drwxrwxr-x 3 inventree inventree 4096 May 20 11:33 ..
- What prompted you to look at the
rest_frameworklibrary directory? - Is it just for the
rest_frameworklibrary that translation files are missing? - Are the InvenTree files missing too?
It was more by luck. I know nothing about rest_framework but saw the error was about python language files missing so started search for folders that stored the locales and came across the missing files.
I've checked and don't see any other locales missing from other subdirectories. Also don't see any other files missing.
@matmair @wolflu05 this has now come up twice. No idea what might be going on here.. Any thoughts?
No idea, the shipped stuff has not really changed. On the road without my normal dev setup right now so hard to debug
Same!
I think I found the root of this but I need someone with a broken environment to quality test my fix instructions - Does anyone here have an environment they are willing to volunteer? @StormTrooper @tnemrap @ShafiqSadat
The steps (to test before we spread this) to fix this are:
- change to package directory with
cd /opt/inventree - remove current environment with
rm -r env - re-create environment
APP_HOME="/opt/inventree" APP_USER="inventree" SETUP_NGINX_FILE="/etc/nginx/sites-enabled/inventree.conf"
. ${APP_HOME}/contrib/packager.io/functions.sh
detect_initcmd
detect_python
create_initscripts
- re-install the required python packages and plugins
sudo inventree run cli update
All in one copy-and-paste (needs to run as superuser/root):
cd /opt/inventree
rm -r env
APP_HOME="/opt/inventree" APP_USER="inventree" SETUP_NGINX_FILE="/etc/nginx/sites-enabled/inventree.conf"
. ${APP_HOME}/contrib/packager.io/functions.sh
detect_initcmd
detect_python
create_initscripts
sudo inventree run cli update
I tested this on my non prod version but am having issues. The above commands all succeed except for the last one:
sudo inventree run cli update
Im running mysql and getting a error Error loading MySQLdb module
I've tried installing mysqlclient but still not having any luck.
inventree@inventree-clone1:/opt/inventree$ pip install mysqlclient
Requirement already satisfied: mysqlclient in /usr/local/lib/python3.8/dist-packages (2.2.5)
Below is the error from the update:
root@inventree-clone1:/opt/inventree# sudo inventree run cli update
Installing required python packages from 'src/backend/requirements.txt'
Requirement already satisfied: pip in ./env/lib/python3.9/site-packages (24.3.1)
Requirement already satisfied: setuptools in ./env/lib/python3.9/site-packages (72.1.0)
Collecting setuptools
Downloading setuptools-75.3.0-py3-none-any.whl.metadata (6.9 kB)
Downloading setuptools-75.3.0-py3-none-any.whl (1.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.3/1.3 MB 11.9 MB/s eta 0:00:00
Installing collected packages: setuptools
Attempting uninstall: setuptools
Found existing installation: setuptools 72.1.0
Uninstalling setuptools-72.1.0:
Successfully uninstalled setuptools-72.1.0
Successfully installed setuptools-75.3.0
Requirement already satisfied: asgiref==3.8.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 3)) (3.8.1)
Requirement already satisfied: async-timeout==4.0.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 9)) (4.0.3)
Requirement already satisfied: attrs==23.2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 13)) (23.2.0)
Requirement already satisfied: babel==2.15.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 19)) (2.15.0)
Requirement already satisfied: bleach==6.1.0 in ./env/lib/python3.9/site-packages (from bleach[css]==6.1.0->-r src/backend/requirements.txt (line 23)) (6.1.0)
Requirement already satisfied: brotli==1.1.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 27)) (1.1.0)
Requirement already satisfied: certifi==2024.7.4 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 112)) (2024.7.4)
Requirement already satisfied: cffi==1.16.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 118)) (1.16.0)
Requirement already satisfied: charset-normalizer==3.3.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 174)) (3.3.2)
Requirement already satisfied: coreapi==2.3.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 266)) (2.3.3)
Requirement already satisfied: coreschema==0.0.4 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 270)) (0.0.4)
Requirement already satisfied: cryptography==42.0.8 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 274)) (42.0.8)
Requirement already satisfied: cssselect2==0.7.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 310)) (0.7.0)
Requirement already satisfied: defusedxml==0.7.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 314)) (0.7.1)
Requirement already satisfied: deprecated==1.2.14 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 320)) (1.2.14)
Requirement already satisfied: diff-match-patch==20230430 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 327)) (20230430)
Requirement already satisfied: dj-rest-auth==6.0.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 331)) (6.0.0)
Requirement already satisfied: django==4.2.15 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 334)) (4.2.15)
Requirement already satisfied: django-allauth==0.63.3 in ./env/lib/python3.9/site-packages (from django-allauth[openid,saml]==0.63.3->-r src/backend/requirements.txt (line 369)) (0.63.3)
Requirement already satisfied: django-allauth-2fa==0.11.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 374)) (0.11.1)
Requirement already satisfied: django-cleanup==8.1.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 378)) (8.1.0)
Requirement already satisfied: django-cors-headers==4.4.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 382)) (4.4.0)
Requirement already satisfied: django-crispy-forms==1.14.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 386)) (1.14.0)
Requirement already satisfied: django-dbbackup==4.1.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 390)) (4.1.0)
Requirement already satisfied: django-error-report-2==0.4.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 394)) (0.4.2)
Requirement already satisfied: django-filter==24.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 398)) (24.2)
Requirement already satisfied: django-flags==5.0.13 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 402)) (5.0.13)
Requirement already satisfied: django-formtools==2.5.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 406)) (2.5.1)
Requirement already satisfied: django-ical==1.9.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 410)) (1.9.2)
Requirement already satisfied: django-import-export==3.3.9 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 414)) (3.3.9)
Requirement already satisfied: django-js-asset==2.2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 418)) (2.2.0)
Requirement already satisfied: django-maintenance-mode==0.21.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 422)) (0.21.1)
Requirement already satisfied: django-markdownify==0.9.5 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 426)) (0.9.5)
Requirement already satisfied: django-money==3.2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 430)) (3.2.0)
Requirement already satisfied: django-mptt==0.16.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 434)) (0.16.0)
Requirement already satisfied: django-otp==1.5.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 438)) (1.5.0)
Requirement already satisfied: django-picklefield==3.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 442)) (3.2)
Requirement already satisfied: django-q-sentry==0.1.6 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 446)) (0.1.6)
Requirement already satisfied: django-q2==1.6.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 449)) (1.6.2)
Requirement already satisfied: django-recurrence==1.11.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 453)) (1.11.1)
Requirement already satisfied: django-redis==5.4.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 457)) (5.4.0)
Requirement already satisfied: django-sesame==3.2.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 461)) (3.2.2)
Requirement already satisfied: django-sql-utils==0.7.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 465)) (0.7.0)
Requirement already satisfied: django-sslserver==0.22 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 469)) (0.22)
Requirement already satisfied: django-stdimage==6.0.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 472)) (6.0.2)
Requirement already satisfied: django-taggit==5.0.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 476)) (5.0.1)
Requirement already satisfied: django-user-sessions==2.0.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 480)) (2.0.0)
Requirement already satisfied: django-weasyprint==2.3.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 484)) (2.3.0)
Requirement already satisfied: django-xforwardedfor-middleware==2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 488)) (2.0)
Requirement already satisfied: djangorestframework==3.14.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 491)) (3.14.0)
Requirement already satisfied: djangorestframework-simplejwt==5.3.1 in ./env/lib/python3.9/site-packages (from djangorestframework-simplejwt[crypto]==5.3.1->-r src/backend/requirements.txt (line 499)) (5.3.1)
Requirement already satisfied: drf-spectacular==0.27.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 503)) (0.27.2)
Requirement already satisfied: dulwich==0.22.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 507)) (0.22.1)
Requirement already satisfied: et-xmlfile==1.1.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 556)) (1.1.0)
Requirement already satisfied: feedparser==6.0.11 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 560)) (6.0.11)
Requirement already satisfied: fonttools==4.53.0 in ./env/lib/python3.9/site-packages (from fonttools[woff]==4.53.0->-r src/backend/requirements.txt (line 564)) (4.53.0)
Requirement already satisfied: googleapis-common-protos==1.63.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 608)) (1.63.2)
Requirement already satisfied: grpcio==1.64.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 614)) (1.64.1)
Requirement already satisfied: gunicorn==22.0.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 664)) (22.0.0)
Requirement already satisfied: html5lib==1.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 668)) (1.1)
Requirement already satisfied: icalendar==5.0.13 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 672)) (5.0.13)
Requirement already satisfied: idna==3.7 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 676)) (3.7)
Requirement already satisfied: importlib-metadata==7.1.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 680)) (7.1.0)
Requirement already satisfied: inflection==0.5.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 687)) (0.5.1)
Requirement already satisfied: isodate==0.6.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 691)) (0.6.1)
Requirement already satisfied: itypes==1.2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 695)) (1.2.0)
Requirement already satisfied: jinja2==3.1.4 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 699)) (3.1.4)
Requirement already satisfied: jsonschema==4.22.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 703)) (4.22.0)
Requirement already satisfied: jsonschema-specifications==2023.12.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 707)) (2023.12.1)
Requirement already satisfied: lxml==5.2.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 711)) (5.2.2)
Requirement already satisfied: markdown==3.6 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 857)) (3.6)
Requirement already satisfied: markuppy==1.14 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 861)) (1.14)
Requirement already satisfied: markupsafe==2.1.5 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 864)) (2.1.5)
Requirement already satisfied: odfpy==1.4.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 926)) (1.4.1)
Requirement already satisfied: openpyxl==3.1.4 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 929)) (3.1.4)
Requirement already satisfied: opentelemetry-api==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 933)) (1.25.0)
Requirement already satisfied: opentelemetry-exporter-otlp==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 947)) (1.25.0)
Requirement already satisfied: opentelemetry-exporter-otlp-proto-common==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 951)) (1.25.0)
Requirement already satisfied: opentelemetry-exporter-otlp-proto-grpc==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 957)) (1.25.0)
Requirement already satisfied: opentelemetry-exporter-otlp-proto-http==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 961)) (1.25.0)
Requirement already satisfied: opentelemetry-instrumentation==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 965)) (0.46b0)
Requirement already satisfied: opentelemetry-instrumentation-django==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 973)) (0.46b0)
Requirement already satisfied: opentelemetry-instrumentation-redis==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 977)) (0.46b0)
Requirement already satisfied: opentelemetry-instrumentation-requests==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 981)) (0.46b0)
Requirement already satisfied: opentelemetry-instrumentation-wsgi==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 985)) (0.46b0)
Requirement already satisfied: opentelemetry-proto==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 989)) (1.25.0)
Requirement already satisfied: opentelemetry-sdk==1.25.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 996)) (1.25.0)
Requirement already satisfied: opentelemetry-semantic-conventions==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1003)) (0.46b0)
Requirement already satisfied: opentelemetry-util-http==0.46b0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1012)) (0.46b0)
Requirement already satisfied: packaging==24.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1019)) (24.1)
Requirement already satisfied: pdf2image==1.17.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1023)) (1.17.0)
Requirement already satisfied: pillow==10.3.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1027)) (10.3.0)
Requirement already satisfied: pint==0.21 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1104)) (0.21)
Requirement already satisfied: pip-licenses==4.4.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1108)) (4.4.0)
Requirement already satisfied: prettytable==3.10.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1112)) (3.10.0)
Requirement already satisfied: protobuf==4.25.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1116)) (4.25.3)
Requirement already satisfied: py-moneyed==3.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1131)) (3.0)
Requirement already satisfied: pycparser==2.22 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1135)) (2.22)
Requirement already satisfied: pydyf==0.10.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1139)) (0.10.0)
Requirement already satisfied: pyjwt==2.8.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1143)) (2.8.0)
Requirement already satisfied: pyphen==0.15.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1147)) (0.15.0)
Requirement already satisfied: pypng==0.20220715.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1151)) (0.20220715.0)
Requirement already satisfied: python-barcode==0.15.1 in ./env/lib/python3.9/site-packages (from python-barcode[images]==0.15.1->-r src/backend/requirements.txt (line 1155)) (0.15.1)
Requirement already satisfied: python-dateutil==2.9.0.post0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1159)) (2.9.0.post0)
Requirement already satisfied: python-dotenv==1.0.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1165)) (1.0.1)
Requirement already satisfied: python-fsutil==0.14.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1169)) (0.14.1)
Requirement already satisfied: python3-openid==3.2.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1173)) (3.2.0)
Requirement already satisfied: python3-saml==1.16.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1177)) (1.16.0)
Requirement already satisfied: pytz==2024.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1182)) (2024.1)
Requirement already satisfied: pyyaml==6.0.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1189)) (6.0.1)
Requirement already satisfied: qrcode==7.4.2 in ./env/lib/python3.9/site-packages (from qrcode[pil]==7.4.2->-r src/backend/requirements.txt (line 1245)) (7.4.2)
Requirement already satisfied: rapidfuzz==3.9.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1251)) (3.9.3)
Requirement already satisfied: redis==5.0.7 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1346)) (5.0.7)
Requirement already satisfied: referencing==0.35.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1350)) (0.35.1)
Requirement already satisfied: regex==2024.4.28 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1356)) (2024.4.28)
Requirement already satisfied: requests==2.32.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1437)) (2.32.3)
Requirement already satisfied: rpds-py==0.18.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1443)) (0.18.1)
Requirement already satisfied: sentry-sdk==2.8.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1546)) (2.8.0)
Collecting setuptools==72.1.0 (from -r src/backend/requirements.txt (line 1552))
Downloading setuptools-72.1.0-py3-none-any.whl (2.3 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.3/2.3 MB 11.8 MB/s eta 0:00:00
Requirement already satisfied: sgmllib3k==1.0.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1559)) (1.0.0)
Requirement already satisfied: six==1.16.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1562)) (1.16.0)
Requirement already satisfied: sqlparse==0.5.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1570)) (0.5.0)
Requirement already satisfied: tablib==3.5.0 in ./env/lib/python3.9/site-packages (from tablib[html,ods,xls,xlsx,yaml]==3.5.0->-r src/backend/requirements.txt (line 1576)) (3.5.0)
Requirement already satisfied: tinycss2==1.2.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1582)) (1.2.1)
Requirement already satisfied: typing-extensions==4.12.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1589)) (4.12.2)
Requirement already satisfied: uritemplate==4.1.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1598)) (4.1.1)
Requirement already satisfied: urllib3==2.2.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1604)) (2.2.2)
Requirement already satisfied: wcwidth==0.2.13 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1611)) (0.2.13)
Requirement already satisfied: weasyprint==61.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1615)) (61.2)
Requirement already satisfied: webencodings==0.5.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1621)) (0.5.1)
Requirement already satisfied: whitenoise==6.7.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1629)) (6.7.0)
Requirement already satisfied: wrapt==1.16.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1633)) (1.16.0)
Requirement already satisfied: xlrd==2.0.1 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1708)) (2.0.1)
Requirement already satisfied: xlwt==1.3.0 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1712)) (1.3.0)
Requirement already satisfied: xmlsec==1.3.14 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1716)) (1.3.14)
Requirement already satisfied: zipp==3.19.2 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1776)) (3.19.2)
Requirement already satisfied: zopfli==0.2.3 in ./env/lib/python3.9/site-packages (from -r src/backend/requirements.txt (line 1780)) (0.2.3)
Installing collected packages: setuptools
Attempting uninstall: setuptools
Found existing installation: setuptools 75.3.0
Uninstalling setuptools-75.3.0:
Successfully uninstalled setuptools-75.3.0
Successfully installed setuptools-72.1.0
Installing plugin packages from '/etc/inventree/plugins.txt'
Collecting inventree-kicad-plugin@ git+https://github.com/afkiwers/inventree_kicad (from -r /etc/inventree/plugins.txt (line 3))
Cloning https://github.com/afkiwers/inventree_kicad to /tmp/pip-install-_zlh4cyb/inventree-kicad-plugin_745f346348a243509246b310a3a841d8
Running command git clone --filter=blob:none --quiet https://github.com/afkiwers/inventree_kicad /tmp/pip-install-_zlh4cyb/inventree-kicad-plugin_745f346348a243509246b310a3a841d8
Resolved https://github.com/afkiwers/inventree_kicad to commit c512f1e1102daaabe096c02f3868f69de97ec471
Preparing metadata (setup.py): started
Preparing metadata (setup.py): finished with status 'done'
Python version 3.9.5 - /opt/inventree/env/bin/python3
Traceback (most recent call last):
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 15, in <module>
import MySQLdb as Database
ModuleNotFoundError: No module named 'MySQLdb'
The above exception was the direct cause of the following exception:
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.9/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/opt/inventree/env/lib/python3.9/site-packages/django/core/management/__init__.py", line 416, in execute
django.setup()
File "/opt/inventree/env/lib/python3.9/site-packages/django/__init__.py", line 24, in setup
apps.populate(settings.INSTALLED_APPS)
File "/opt/inventree/env/lib/python3.9/site-packages/django/apps/registry.py", line 116, in populate
app_config.import_models()
File "/opt/inventree/env/lib/python3.9/site-packages/django/apps/config.py", line 269, in import_models
self.models_module = import_module(models_module_name)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 855, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/opt/inventree/src/backend/InvenTree/build/models.py", line 9, in <module>
from django.contrib.auth.models import User
File "/opt/inventree/env/lib/python3.9/site-packages/django/contrib/auth/models.py", line 3, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "/opt/inventree/env/lib/python3.9/site-packages/django/contrib/auth/base_user.py", line 57, in <module>
class AbstractBaseUser(models.Model):
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/models/base.py", line 143, in __new__
new_class.add_to_class("_meta", Options(meta, app_label))
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/models/base.py", line 371, in add_to_class
value.contribute_to_class(cls, name)
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/models/options.py", line 243, in contribute_to_class
self.db_table, connection.ops.max_name_length()
File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/connection.py", line 15, in __getattr__
return getattr(self._connections[self._alias], item)
File "/opt/inventree/env/lib/python3.9/site-packages/django/utils/connection.py", line 62, in __getitem__
conn = self.create_connection(alias)
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/utils.py", line 193, in create_connection
backend = load_backend(db["ENGINE"])
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/utils.py", line 113, in load_backend
return import_module("%s.base" % backend_name)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/opt/inventree/env/lib/python3.9/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.
Did you install mysqlclient?
Seems like your environment is missing mysqlclient. If you have not listed that in the install extras or in your plugins.txt but installed manually (not recommended) it is gone after the fix commands.
Either place the MySQL (python) dependencies in your plugins.txt or install them manually by enabling the python environment inventree runs in (normally /opt/inventree/env) and then running the pip install command.
Thanks. Adding it to the plugins.txt fixed it.
I've run the above script on both my servers and also upgraded to 0.16.8 and both working 100%
great to hear - can we close out this ticket @tnemrap
@SchrodingersGat I think we can close this as @StormTrooper reports it is fixed with the provided instructions
I am getting an error when installing mysql
` inventree@inventree:/opt/inventree$ source ./env/bin/activate (env) inventree@inventree:/opt/inventree$ cd env (env) inventree@inventree:/opt/inventree/env$ pip install mysqlclient Collecting mysqlclient Using cached mysqlclient-2.2.5.tar.gz (90 kB) Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully.
│ exit code: 1
╰─> [33 lines of output]
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
/bin/sh: 1: pkg-config: not found
Trying pkg-config --exists mysqlclient
Command 'pkg-config --exists mysqlclient' returned non-zero exit status 127.
Trying pkg-config --exists mariadb
Command 'pkg-config --exists mariadb' returned non-zero exit status 127.
Trying pkg-config --exists libmariadb
Command 'pkg-config --exists libmariadb' returned non-zero exit status 127.
Trying pkg-config --exists perconaserverclient
Command 'pkg-config --exists perconaserverclient' returned non-zero exit status 127.
Traceback (most recent call last):
File "/opt/inventree/env/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 353, in
note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip. `
Had to run sudo apt install pkg-config.
@matmair FYI, your proposed fix worked for me, but not immediately:
sudo inventree run cli update aborts due to a missing package (somewhat similar to @StormTrooper's situation):
Installing plugin packages from '/etc/inventree/plugins.txt'
Python version 3.9.2 - /opt/inventree/env/bin/python3
Python version 3.9.2 - /opt/inventree/env/bin/python3
Traceback (most recent call last):
File "/opt/inventree/env/lib/python3.9/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.9/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.9/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
utility.execute()
File "/opt/inventree/env/lib/python3.9/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.9/site-packages/django/core/management/__init__.py", line 262, in fetch_command
settings.INSTALLED_APPS
File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 102, in __getattr__
self._setup(name)
File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File "/opt/inventree/env/lib/python3.9/site-packages/django/conf/__init__.py", line 217, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1030, in _gcd_import
File "<frozen importlib._bootstrap>", line 1007, in _find_and_load
File "<frozen importlib._bootstrap>", line 986, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 680, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 790, in exec_module
File "<frozen importlib._bootstrap>", line 228, in _call_with_frames_removed
File "/opt/inventree/src/backend/InvenTree/InvenTree/settings.py", line 618, in <module>
from django.db.backends.postgresql.psycopg_any import IsolationLevel
File "/opt/inventree/env/lib/python3.9/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'
After a manual install:
source env/bin/activate
pip install psycopg2-binary
And re-running inventree run cli update, the result is still a 502 Bad Gateway, Then I remembered your earlier suggestion to remove & re-installing inventree. That did the trick.
As always, thanks for your support! I am a great fan of Inventree 👍, it has been the backbone for my inventory management for a few years now.
I'll keep the VM snapshot with the "broken" 0.16.1 setup for a while if you want me to do any checks.
@JustusRijke I think we have the needed precautions now included in the installer flow