InvenTree icon indicating copy to clipboard operation
InvenTree copied to clipboard

Problem after installing 0.16.2

Open tnemrap opened this issue 1 year ago • 5 comments

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 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 416, in execute django.setup() File "/opt/inventree/env/lib/python3.11/site-packages/django/init.py", line 24, in setup apps.populate(settings.INSTALLED_APPS) File "/opt/inventree/env/lib/python3.11/site-packages/django/apps/registry.py", line 116, in populate app_config.import_models() File "/opt/inventree/env/lib/python3.11/site-packages/django/apps/config.py", line 269, in import_models self.models_module = import_module(models_module_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/lib/python3.11/importlib/init.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "", line 1206, in _gcd_import File "", line 1178, in _find_and_load File "", line 1149, in _find_and_load_unlocked File "", line 690, in _load_unlocked File "", line 940, in exec_module File "", line 241, in _call_with_frames_removed File "/opt/inventree/src/backend/InvenTree/build/models.py", line 9, in from django.contrib.auth.models import User File "/opt/inventree/env/lib/python3.11/site-packages/django/contrib/auth/models.py", line 98, in class Group(models.Model): File "/opt/inventree/env/lib/python3.11/site-packages/django/db/models/base.py", line 194, in new new_class.add_to_class(obj_name, obj) File "/opt/inventree/env/lib/python3.11/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.11/site-packages/django/db/models/fields/related.py", line 1910, in contribute_to_class self.remote_field.through = create_many_to_many_intermediary_model( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/db/models/fields/related.py", line 1269, in create_many_to_many_intermediary_model "verbose_name": _("%(from)s-%(to)s relationship") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/functional.py", line 191, in mod return str(self) % rhs ^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/functional.py", line 155, in __text_cast return func(*self.__args, **self.__kw) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/translation/init.py", line 95, in gettext return _trans.gettext(message) ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 380, in gettext _default = _default or translation(settings.LANGUAGE_CODE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 293, in translation _translations[language] = DjangoTranslation(language) ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/django/utils/translation/trans_real.py", line 179, in init raise OSError( OSError: No translation files found for default language en-us.

tnemrap avatar Sep 20 '24 21:09 tnemrap

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

czkapitan2 avatar Sep 21 '24 17:09 czkapitan2

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.

StormTrooper avatar Sep 22 '24 09:09 StormTrooper

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 ..

StormTrooper avatar Sep 22 '24 10:09 StormTrooper

  • What prompted you to look at the rest_framework library directory?
  • Is it just for the rest_framework library that translation files are missing?
  • Are the InvenTree files missing too?

SchrodingersGat avatar Sep 22 '24 23:09 SchrodingersGat

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.

StormTrooper avatar Sep 23 '24 06:09 StormTrooper

@matmair @wolflu05 this has now come up twice. No idea what might be going on here.. Any thoughts?

SchrodingersGat avatar Oct 09 '24 11:10 SchrodingersGat

No idea, the shipped stuff has not really changed. On the road without my normal dev setup right now so hard to debug

matmair avatar Oct 09 '24 11:10 matmair

Same!

ShafiqSadat avatar Oct 16 '24 09:10 ShafiqSadat

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

matmair avatar Nov 06 '24 23:11 matmair

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

matmair avatar Nov 06 '24 23:11 matmair

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?

StormTrooper avatar Nov 09 '24 21:11 StormTrooper

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.

matmair avatar Nov 09 '24 22:11 matmair

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%

StormTrooper avatar Nov 09 '24 22:11 StormTrooper

great to hear - can we close out this ticket @tnemrap

matmair avatar Nov 09 '24 22:11 matmair

@SchrodingersGat I think we can close this as @StormTrooper reports it is fixed with the provided instructions

matmair avatar Nov 12 '24 11:11 matmair

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 main() File "/opt/inventree/env/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/inventree/env/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 118, in get_requires_for_build_wheel return hook(config_settings) ^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-m7k6bye8/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 334, in get_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=[]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-m7k6bye8/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 304, in _get_build_requires self.run_setup() File "/tmp/pip-build-env-m7k6bye8/overlay/lib/python3.11/site-packages/setuptools/build_meta.py", line 320, in run_setup exec(code, locals()) File "", line 155, in File "", line 49, in get_config_posix File "", line 28, in find_package_name Exception: Can not find valid pkg-config name. Specify MYSQLCLIENT_CFLAGS and MYSQLCLIENT_LDFLAGS env vars manually [end of output]

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. `

tnemrap avatar Nov 12 '24 18:11 tnemrap

Had to run sudo apt install pkg-config.

tnemrap avatar Nov 12 '24 20:11 tnemrap

@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 avatar Dec 02 '24 09:12 JustusRijke

@JustusRijke I think we have the needed precautions now included in the installer flow

matmair avatar Dec 02 '24 12:12 matmair