[GH-ISSUE #3151] Upgrade from 2.2.2 to 2.2.3 failed #1782

Closed
opened 2026-02-27 11:19:05 +03:00 by kerem · 1 comment
Owner

Originally created by @porrascarlos802018 on GitHub (Dec 28, 2023).
Original GitHub issue: https://github.com/modoboa/modoboa/issues/3151

Impacted versions

  • OS Type: ubuntu 22
  • OS Version: Number or Name
  • Database Type: MySQL
  • Database version: X.y
  • Modoboa: 2.2.2
  • installer used: Yes/No ? Yes
  • Webserver: Nginx/

Steps to reproduce

pip install modoboa==2.2.3
Collecting modoboa==2.2.3
Downloading modoboa-2.2.3-py3-none-any.whl (14.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.5/14.5 MB 3.4 MB/s eta 0:00:00
Collecting asgiref
Downloading asgiref-3.7.2-py3-none-any.whl (24 kB)
Collecting ovh
Downloading ovh-1.1.0-py2.py3-none-any.whl (21 kB)
Collecting django<5.0,>4.0
Downloading Django-4.2.8-py3-none-any.whl (8.0 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 3.5 MB/s eta 0:00:00
Collecting django-rq
Downloading django_rq-2.10.1-py2.py3-none-any.whl (56 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.2/56.2 KB 4.9 MB/s eta 0:00:00
Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (2.25.1)
Collecting django-otp==1.3.0
Downloading django_otp-1.3.0-py3-none-any.whl (76 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.2/76.2 KB 3.4 MB/s eta 0:00:00
Collecting feedparser==6.0.11
Downloading feedparser-6.0.11-py3-none-any.whl (81 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.3/81.3 KB 3.0 MB/s eta 0:00:00
Collecting lxml
Downloading lxml-4.9.4-cp310-cp310-manylinux_2_28_x86_64.whl (7.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.9/7.9 MB 3.5 MB/s eta 0:00:00
Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (3.4.8)
Collecting redis>=4.2.0rc1
Downloading redis-5.1.0a1-py3-none-any.whl (254 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 254.3/254.3 KB 3.9 MB/s eta 0:00:00
Collecting python-dateutil
Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 3.3 MB/s eta 0:00:00
Collecting django-rename-app==0.1.5
Downloading django_rename_app-0.1.5-py2.py3-none-any.whl (7.7 kB)
Collecting aiosmtplib
Downloading aiosmtplib-3.0.1-py3-none-any.whl (27 kB)
Collecting qrcode
Downloading qrcode-7.4.2-py3-none-any.whl (46 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.2/46.2 KB 2.9 MB/s eta 0:00:00
Collecting reportlab
Downloading reportlab-4.0.8-py3-none-any.whl (1.9 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 3.6 MB/s eta 0:00:00
Collecting rq>=1.13.0
Downloading rq-1.15.1-py2.py3-none-any.whl (95 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.8/95.8 KB 2.8 MB/s eta 0:00:00
Collecting tldextract>=2.0.2
Downloading tldextract-5.1.1-py3-none-any.whl (97 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.7/97.7 KB 3.0 MB/s eta 0:00:00
Collecting dj-database-url
Downloading dj_database_url-2.1.0-py3-none-any.whl (7.7 kB)
Collecting djangorestframework<3.15,>=3.14
Downloading djangorestframework-3.14.0-py3-none-any.whl (1.1 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 3.5 MB/s eta 0:00:00
Collecting uritemplate
Downloading uritemplate-4.1.1-py2.py3-none-any.whl (10 kB)
Collecting passlib~=1.7.4
Downloading passlib-1.7.4-py2.py3-none-any.whl (525 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 525.6/525.6 KB 3.4 MB/s eta 0:00:00
Collecting django-reversion==5.0.9
Downloading django_reversion-5.0.9-py3-none-any.whl (87 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.2/87.2 KB 2.9 MB/s eta 0:00:00
Collecting django-filter
Downloading django_filter-23.5-py3-none-any.whl (94 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.4/94.4 KB 3.7 MB/s eta 0:00:00
Requirement already satisfied: bcrypt in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (3.2.0)
Requirement already satisfied: chardet in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (4.0.0)
Collecting Pillow
Downloading Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 3.6 MB/s eta 0:00:00
Collecting defusedxml>=0.6.0
Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB)
Collecting progressbar33==2.4
Downloading progressbar33-2.4.tar.gz (10 kB)
Preparing metadata (setup.py) ... done
Collecting drf-spectacular
Downloading drf_spectacular-0.27.0-py3-none-any.whl (101 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.0/101.0 KB 3.2 MB/s eta 0:00:00
Collecting rrdtool>=0.1.10
Downloading rrdtool-0.1.16.tar.gz (22 kB)
Preparing metadata (setup.py) ... done
Collecting oath
Downloading oath-1.4.4-py3-none-any.whl (13 kB)
Collecting django-phonenumber-field[phonenumbers]==7.2.0
Downloading django_phonenumber_field-7.2.0-py3-none-any.whl (66 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.3/66.3 KB 2.9 MB/s eta 0:00:00
Collecting django-xforwardedfor-middleware==2.0
Downloading django-xforwardedfor-middleware-2.0.tar.gz (1.6 kB)
Preparing metadata (setup.py) ... done
Collecting djangorestframework-simplejwt==5.3.1
Downloading djangorestframework_simplejwt-5.3.1-py3-none-any.whl (101 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.3/101.3 KB 3.4 MB/s eta 0:00:00
Requirement already satisfied: pytz in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (2022.1)
Collecting gevent==23.9.1
Downloading gevent-23.9.1-cp310-cp310-manylinux_2_28_x86_64.whl (6.4 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.4/6.4 MB 3.5 MB/s eta 0:00:00
Collecting django-ckeditor==6.7.0
Downloading django_ckeditor-6.7.0-py3-none-any.whl (2.5 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 3.6 MB/s eta 0:00:00
Requirement already satisfied: python-magic>=0.4.24 in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (0.4.24)
Collecting dnspython==2.4.2
Downloading dnspython-2.4.2-py3-none-any.whl (300 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 300.4/300.4 KB 3.4 MB/s eta 0:00:00
Collecting django-js-asset>=2.0
Downloading django_js_asset-2.2.0-py3-none-any.whl (4.7 kB)
Collecting phonenumbers>=7.0.2
Downloading phonenumbers-8.13.27-py2.py3-none-any.whl (2.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.6/2.6 MB 3.6 MB/s eta 0:00:00
Requirement already satisfied: pyjwt<3,>=1.7.1 in /usr/lib/python3/dist-packages (from djangorestframework-simplejwt==5.3.1->modoboa==2.2.3) (2.3.0)
Collecting sgmllib3k
Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB)
Preparing metadata (setup.py) ... done
Collecting greenlet>=2.0.0
Downloading greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (616 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 616.0/616.0 KB 3.4 MB/s eta 0:00:00
Requirement already satisfied: zope.interface in /usr/lib/python3/dist-packages (from gevent==23.9.1->modoboa==2.2.3) (5.4.0)
Requirement already satisfied: zope.event in /usr/lib/python3/dist-packages (from gevent==23.9.1->modoboa==2.2.3) (4.4)
Collecting sqlparse>=0.3.1
Downloading sqlparse-0.4.4-py3-none-any.whl (41 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.2/41.2 KB 2.1 MB/s eta 0:00:00
Collecting typing-extensions>=4
Downloading typing_extensions-4.9.0-py3-none-any.whl (32 kB)
Collecting async-timeout>=4.0.2
Downloading async_timeout-4.0.3-py3-none-any.whl (5.7 kB)
Requirement already satisfied: click>=5.0.0 in /usr/lib/python3/dist-packages (from rq>=1.13.0->modoboa==2.2.3) (8.0.3)
Requirement already satisfied: idna in /usr/lib/python3/dist-packages (from tldextract>=2.0.2->modoboa==2.2.3) (3.3)
Requirement already satisfied: filelock>=3.0.8 in /usr/lib/python3/dist-packages (from tldextract>=2.0.2->modoboa==2.2.3) (3.6.0)
Collecting requests-file>=1.4
Downloading requests_file-1.5.1-py2.py3-none-any.whl (3.7 kB)
Collecting inflection>=0.3.1
Downloading inflection-0.5.1-py2.py3-none-any.whl (9.5 kB)
Requirement already satisfied: PyYAML>=5.1 in /usr/lib/python3/dist-packages (from drf-spectacular->modoboa==2.2.3) (5.4.1)
Requirement already satisfied: jsonschema>=2.6.0 in /usr/lib/python3/dist-packages (from drf-spectacular->modoboa==2.2.3) (3.2.0)
Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil->modoboa==2.2.3) (1.16.0)
Collecting pypng
Downloading pypng-0.20220715.0-py3-none-any.whl (58 kB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.1/58.1 KB 3.0 MB/s eta 0:00:00
Building wheels for collected packages: django-xforwardedfor-middleware, progressbar33, rrdtool, sgmllib3k
Building wheel for django-xforwardedfor-middleware (setup.py) ... done
Created wheel for django-xforwardedfor-middleware: filename=django_xforwardedfor_middleware-2.0-py3-none-any.whl size=1949 sha256=b627ec404445b7b159d5e74699b8deba3a62bf5f96976d64892bd91628f8ab85
Stored in directory: /root/.cache/pip/wheels/0e/be/bb/5269c1234749bf118e805b4a1dbf5880a038667d05a0a0b6ac
Building wheel for progressbar33 (setup.py) ... done
Created wheel for progressbar33: filename=progressbar33-2.4-py3-none-any.whl size=12156 sha256=eadbaaee87f73d20d7c8816541cd4dddadde1d4bf1e22f8972d0a2185497e0f2
Stored in directory: /root/.cache/pip/wheels/28/6d/b6/fd4b9b1489353528a2eea1200c98532fd60d535e22498d9e28
Building wheel for rrdtool (setup.py) ... done
Created wheel for rrdtool: filename=rrdtool-0.1.16-cp310-cp310-linux_x86_64.whl size=49420 sha256=8e2f193639749d75c0fcd7ac1de2060e524d11f86e1ea8f570ed562ff5db0ad6
Stored in directory: /root/.cache/pip/wheels/80/59/a9/d5d6d7d84c5c6186eab5987f0235b9a3b9aa08c4dabda4ceb9
Building wheel for sgmllib3k (setup.py) ... done
Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6066 sha256=374629af13b4b5e5247c1b5391beb57bdddabaf7b3b6ac159d18ba32b5f03ec3
Stored in directory: /root/.cache/pip/wheels/f0/69/93/a47e9d621be168e9e33c7ce60524393c0b92ae83cf6c6e89c5
Successfully built django-xforwardedfor-middleware progressbar33 rrdtool sgmllib3k
Installing collected packages: sgmllib3k, pypng, progressbar33, phonenumbers, passlib, oath, uritemplate, typing-extensions, sqlparse, rrdtool, requests-file, python-dateutil, Pillow, ovh, lxml, inflection, greenlet, feedparser, dnspython, defusedxml, async-timeout, aiosmtplib, tldextract, reportlab, redis, qrcode, gevent, asgiref, rq, django, djangorestframework, django-xforwardedfor-middleware, django-rq, django-reversion, django-rename-app, django-phonenumber-field, django-otp, django-js-asset, django-filter, dj-database-url, drf-spectacular, djangorestframework-simplejwt, django-ckeditor, modoboa
Successfully installed Pillow-10.1.0 aiosmtplib-3.0.1 asgiref-3.7.2 async-timeout-4.0.3 defusedxml-0.7.1 dj-database-url-2.1.0 django-4.2.8 django-ckeditor-6.7.0 django-filter-23.5 django-js-asset-2.2.0 django-otp-1.3.0 django-phonenumber-field-7.2.0 django-rename-app-0.1.5 django-reversion-5.0.9 django-rq-2.10.1 django-xforwardedfor-middleware-2.0 djangorestframework-3.14.0 djangorestframework-simplejwt-5.3.1 dnspython-2.4.2 drf-spectacular-0.27.0 feedparser-6.0.11 gevent-23.9.1 greenlet-3.0.3 inflection-0.5.1 lxml-4.9.4 modoboa-2.2.3 oath-1.4.4 ovh-1.1.0 passlib-1.7.4 phonenumbers-8.13.27 progressbar33-2.4 pypng-0.20220715.0 python-dateutil-2.8.2 qrcode-7.4.2 redis-5.1.0a1 reportlab-4.0.8 requests-file-1.5.1 rq-1.15.1 rrdtool-0.1.16 sgmllib3k-1.0.0 sqlparse-0.4.4 tldextract-5.1.1 typing-extensions-4.9.0 uritemplate-4.1.1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
root@mail:/home/carlos# cd /srv/modoboa
root@mail:/srv/modoboa# cd instance
root@mail:/srv/modoboa/instance# python manage.py migrate
Command 'python' not found, did you mean:
command 'python3' from deb python3
command 'python' from deb python-is-python3
root@mail:/srv/modoboa/instance# sudo ln -s /usr/bin/python3 /usr/bin/python
root@mail:/srv/modoboa/instance# python manage.py migrate
Traceback (most recent call last):
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 412, in run_from_argv
self.execute(*args, **cmd_options)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 458, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 103, in wrapper
saved_locale = translation.get_language()
File "/usr/local/lib/python3.10/dist-packages/django/utils/translation/init.py", line 210, in get_language
return _trans.get_language()
File "/usr/local/lib/python3.10/dist-packages/django/utils/translation/init.py", line 65, in getattr
if settings.USE_I18N:
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 102, in getattr
self._setup(name)
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 217, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/srv/modoboa/instance/instance/settings.py", line 422, in
from modoboa_amavis import settings as modoboa_amavis_settings
ModuleNotFoundError: No module named 'modoboa_amavis'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/srv/modoboa/instance/manage.py", line 22, in
main()
File "/srv/modoboa/instance/manage.py", line 18, in main
execute_from_command_line(sys.argv)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/init.py", line 442, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python3.10/dist-packages/django/core/management/init.py", line 436, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 425, in run_from_argv
connections.close_all()
File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 84, in close_all
for conn in self.all(initialized_only=True):
File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 76, in all
return [
File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 73, in iter
return iter(self.settings)
File "/usr/local/lib/python3.10/dist-packages/django/utils/functional.py", line 57, in get
res = instance.dict[self.name] = self.func(instance)
File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 45, in settings
self._settings = self.configure_settings(self._settings)
File "/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 148, in configure_settings
databases = super().configure_settings(databases)
File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 50, in configure_settings
settings = getattr(django_settings, self.settings_name)
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 102, in getattr
self._setup(name)
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 89, in _setup
self._wrapped = Settings(settings_module)
File "/usr/local/lib/python3.10/dist-packages/django/conf/init.py", line 217, in init
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/usr/lib/python3.10/importlib/init.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "", line 1050, in _gcd_import
File "", line 1027, in _find_and_load
File "", line 1006, in _find_and_load_unlocked
File "", line 688, in _load_unlocked
File "", line 883, in exec_module
File "", line 241, in _call_with_frames_removed
File "/srv/modoboa/instance/instance/settings.py", line 422, in
from modoboa_amavis import settings as modoboa_amavis_settings
ModuleNotFoundError: No module named 'modoboa_amavis'
root@mail:/srv/modoboa/instance# dir
frontend instance manage.py media sitestatic
root@mail:/srv/modoboa/instance# cd instance
root@mail:/srv/modoboa/instance/instance# dir
asgi.py init.py pycache settings.py urls.py wsgi.py
root@mail:/srv/modoboa/instance/instance# cd ..
root@mail:/srv/modoboa/instance#

Current behavior

https://mail.sdomain.com/core/#info/

shows contacts and webmail can be upgraded.

Expected behavior

easily upgrade newer versions.
push button, upgrade like some laravel deployments are implementing.

Video/Screenshot link (optional)

attached.
modoboa

Originally created by @porrascarlos802018 on GitHub (Dec 28, 2023). Original GitHub issue: https://github.com/modoboa/modoboa/issues/3151 # Impacted versions * OS Type: ubuntu 22 * OS Version: Number or Name * Database Type: MySQL * Database version: X.y * Modoboa: 2.2.2 * installer used: Yes/No ? Yes * Webserver: Nginx/ # Steps to reproduce pip install modoboa==2.2.3 Collecting modoboa==2.2.3 Downloading modoboa-2.2.3-py3-none-any.whl (14.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.5/14.5 MB 3.4 MB/s eta 0:00:00 Collecting asgiref Downloading asgiref-3.7.2-py3-none-any.whl (24 kB) Collecting ovh Downloading ovh-1.1.0-py2.py3-none-any.whl (21 kB) Collecting django<5.0,>4.0 Downloading Django-4.2.8-py3-none-any.whl (8.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 8.0/8.0 MB 3.5 MB/s eta 0:00:00 Collecting django-rq Downloading django_rq-2.10.1-py2.py3-none-any.whl (56 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.2/56.2 KB 4.9 MB/s eta 0:00:00 Requirement already satisfied: requests in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (2.25.1) Collecting django-otp==1.3.0 Downloading django_otp-1.3.0-py3-none-any.whl (76 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 76.2/76.2 KB 3.4 MB/s eta 0:00:00 Collecting feedparser==6.0.11 Downloading feedparser-6.0.11-py3-none-any.whl (81 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 81.3/81.3 KB 3.0 MB/s eta 0:00:00 Collecting lxml Downloading lxml-4.9.4-cp310-cp310-manylinux_2_28_x86_64.whl (7.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.9/7.9 MB 3.5 MB/s eta 0:00:00 Requirement already satisfied: cryptography in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (3.4.8) Collecting redis>=4.2.0rc1 Downloading redis-5.1.0a1-py3-none-any.whl (254 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 254.3/254.3 KB 3.9 MB/s eta 0:00:00 Collecting python-dateutil Downloading python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 247.7/247.7 KB 3.3 MB/s eta 0:00:00 Collecting django-rename-app==0.1.5 Downloading django_rename_app-0.1.5-py2.py3-none-any.whl (7.7 kB) Collecting aiosmtplib Downloading aiosmtplib-3.0.1-py3-none-any.whl (27 kB) Collecting qrcode Downloading qrcode-7.4.2-py3-none-any.whl (46 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 46.2/46.2 KB 2.9 MB/s eta 0:00:00 Collecting reportlab Downloading reportlab-4.0.8-py3-none-any.whl (1.9 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.9/1.9 MB 3.6 MB/s eta 0:00:00 Collecting rq>=1.13.0 Downloading rq-1.15.1-py2.py3-none-any.whl (95 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 95.8/95.8 KB 2.8 MB/s eta 0:00:00 Collecting tldextract>=2.0.2 Downloading tldextract-5.1.1-py3-none-any.whl (97 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 97.7/97.7 KB 3.0 MB/s eta 0:00:00 Collecting dj-database-url Downloading dj_database_url-2.1.0-py3-none-any.whl (7.7 kB) Collecting djangorestframework<3.15,>=3.14 Downloading djangorestframework-3.14.0-py3-none-any.whl (1.1 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 3.5 MB/s eta 0:00:00 Collecting uritemplate Downloading uritemplate-4.1.1-py2.py3-none-any.whl (10 kB) Collecting passlib~=1.7.4 Downloading passlib-1.7.4-py2.py3-none-any.whl (525 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 525.6/525.6 KB 3.4 MB/s eta 0:00:00 Collecting django-reversion==5.0.9 Downloading django_reversion-5.0.9-py3-none-any.whl (87 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.2/87.2 KB 2.9 MB/s eta 0:00:00 Collecting django-filter Downloading django_filter-23.5-py3-none-any.whl (94 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 94.4/94.4 KB 3.7 MB/s eta 0:00:00 Requirement already satisfied: bcrypt in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (3.2.0) Requirement already satisfied: chardet in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (4.0.0) Collecting Pillow Downloading Pillow-10.1.0-cp310-cp310-manylinux_2_28_x86_64.whl (3.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 3.6/3.6 MB 3.6 MB/s eta 0:00:00 Collecting defusedxml>=0.6.0 Downloading defusedxml-0.7.1-py2.py3-none-any.whl (25 kB) Collecting progressbar33==2.4 Downloading progressbar33-2.4.tar.gz (10 kB) Preparing metadata (setup.py) ... done Collecting drf-spectacular Downloading drf_spectacular-0.27.0-py3-none-any.whl (101 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.0/101.0 KB 3.2 MB/s eta 0:00:00 Collecting rrdtool>=0.1.10 Downloading rrdtool-0.1.16.tar.gz (22 kB) Preparing metadata (setup.py) ... done Collecting oath Downloading oath-1.4.4-py3-none-any.whl (13 kB) Collecting django-phonenumber-field[phonenumbers]==7.2.0 Downloading django_phonenumber_field-7.2.0-py3-none-any.whl (66 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 66.3/66.3 KB 2.9 MB/s eta 0:00:00 Collecting django-xforwardedfor-middleware==2.0 Downloading django-xforwardedfor-middleware-2.0.tar.gz (1.6 kB) Preparing metadata (setup.py) ... done Collecting djangorestframework-simplejwt==5.3.1 Downloading djangorestframework_simplejwt-5.3.1-py3-none-any.whl (101 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 101.3/101.3 KB 3.4 MB/s eta 0:00:00 Requirement already satisfied: pytz in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (2022.1) Collecting gevent==23.9.1 Downloading gevent-23.9.1-cp310-cp310-manylinux_2_28_x86_64.whl (6.4 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 6.4/6.4 MB 3.5 MB/s eta 0:00:00 Collecting django-ckeditor==6.7.0 Downloading django_ckeditor-6.7.0-py3-none-any.whl (2.5 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.5/2.5 MB 3.6 MB/s eta 0:00:00 Requirement already satisfied: python-magic>=0.4.24 in /usr/lib/python3/dist-packages (from modoboa==2.2.3) (0.4.24) Collecting dnspython==2.4.2 Downloading dnspython-2.4.2-py3-none-any.whl (300 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 300.4/300.4 KB 3.4 MB/s eta 0:00:00 Collecting django-js-asset>=2.0 Downloading django_js_asset-2.2.0-py3-none-any.whl (4.7 kB) Collecting phonenumbers>=7.0.2 Downloading phonenumbers-8.13.27-py2.py3-none-any.whl (2.6 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.6/2.6 MB 3.6 MB/s eta 0:00:00 Requirement already satisfied: pyjwt<3,>=1.7.1 in /usr/lib/python3/dist-packages (from djangorestframework-simplejwt==5.3.1->modoboa==2.2.3) (2.3.0) Collecting sgmllib3k Downloading sgmllib3k-1.0.0.tar.gz (5.8 kB) Preparing metadata (setup.py) ... done Collecting greenlet>=2.0.0 Downloading greenlet-3.0.3-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl (616 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 616.0/616.0 KB 3.4 MB/s eta 0:00:00 Requirement already satisfied: zope.interface in /usr/lib/python3/dist-packages (from gevent==23.9.1->modoboa==2.2.3) (5.4.0) Requirement already satisfied: zope.event in /usr/lib/python3/dist-packages (from gevent==23.9.1->modoboa==2.2.3) (4.4) Collecting sqlparse>=0.3.1 Downloading sqlparse-0.4.4-py3-none-any.whl (41 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 41.2/41.2 KB 2.1 MB/s eta 0:00:00 Collecting typing-extensions>=4 Downloading typing_extensions-4.9.0-py3-none-any.whl (32 kB) Collecting async-timeout>=4.0.2 Downloading async_timeout-4.0.3-py3-none-any.whl (5.7 kB) Requirement already satisfied: click>=5.0.0 in /usr/lib/python3/dist-packages (from rq>=1.13.0->modoboa==2.2.3) (8.0.3) Requirement already satisfied: idna in /usr/lib/python3/dist-packages (from tldextract>=2.0.2->modoboa==2.2.3) (3.3) Requirement already satisfied: filelock>=3.0.8 in /usr/lib/python3/dist-packages (from tldextract>=2.0.2->modoboa==2.2.3) (3.6.0) Collecting requests-file>=1.4 Downloading requests_file-1.5.1-py2.py3-none-any.whl (3.7 kB) Collecting inflection>=0.3.1 Downloading inflection-0.5.1-py2.py3-none-any.whl (9.5 kB) Requirement already satisfied: PyYAML>=5.1 in /usr/lib/python3/dist-packages (from drf-spectacular->modoboa==2.2.3) (5.4.1) Requirement already satisfied: jsonschema>=2.6.0 in /usr/lib/python3/dist-packages (from drf-spectacular->modoboa==2.2.3) (3.2.0) Requirement already satisfied: six>=1.5 in /usr/lib/python3/dist-packages (from python-dateutil->modoboa==2.2.3) (1.16.0) Collecting pypng Downloading pypng-0.20220715.0-py3-none-any.whl (58 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 58.1/58.1 KB 3.0 MB/s eta 0:00:00 Building wheels for collected packages: django-xforwardedfor-middleware, progressbar33, rrdtool, sgmllib3k Building wheel for django-xforwardedfor-middleware (setup.py) ... done Created wheel for django-xforwardedfor-middleware: filename=django_xforwardedfor_middleware-2.0-py3-none-any.whl size=1949 sha256=b627ec404445b7b159d5e74699b8deba3a62bf5f96976d64892bd91628f8ab85 Stored in directory: /root/.cache/pip/wheels/0e/be/bb/5269c1234749bf118e805b4a1dbf5880a038667d05a0a0b6ac Building wheel for progressbar33 (setup.py) ... done Created wheel for progressbar33: filename=progressbar33-2.4-py3-none-any.whl size=12156 sha256=eadbaaee87f73d20d7c8816541cd4dddadde1d4bf1e22f8972d0a2185497e0f2 Stored in directory: /root/.cache/pip/wheels/28/6d/b6/fd4b9b1489353528a2eea1200c98532fd60d535e22498d9e28 Building wheel for rrdtool (setup.py) ... done Created wheel for rrdtool: filename=rrdtool-0.1.16-cp310-cp310-linux_x86_64.whl size=49420 sha256=8e2f193639749d75c0fcd7ac1de2060e524d11f86e1ea8f570ed562ff5db0ad6 Stored in directory: /root/.cache/pip/wheels/80/59/a9/d5d6d7d84c5c6186eab5987f0235b9a3b9aa08c4dabda4ceb9 Building wheel for sgmllib3k (setup.py) ... done Created wheel for sgmllib3k: filename=sgmllib3k-1.0.0-py3-none-any.whl size=6066 sha256=374629af13b4b5e5247c1b5391beb57bdddabaf7b3b6ac159d18ba32b5f03ec3 Stored in directory: /root/.cache/pip/wheels/f0/69/93/a47e9d621be168e9e33c7ce60524393c0b92ae83cf6c6e89c5 Successfully built django-xforwardedfor-middleware progressbar33 rrdtool sgmllib3k Installing collected packages: sgmllib3k, pypng, progressbar33, phonenumbers, passlib, oath, uritemplate, typing-extensions, sqlparse, rrdtool, requests-file, python-dateutil, Pillow, ovh, lxml, inflection, greenlet, feedparser, dnspython, defusedxml, async-timeout, aiosmtplib, tldextract, reportlab, redis, qrcode, gevent, asgiref, rq, django, djangorestframework, django-xforwardedfor-middleware, django-rq, django-reversion, django-rename-app, django-phonenumber-field, django-otp, django-js-asset, django-filter, dj-database-url, drf-spectacular, djangorestframework-simplejwt, django-ckeditor, modoboa Successfully installed Pillow-10.1.0 aiosmtplib-3.0.1 asgiref-3.7.2 async-timeout-4.0.3 defusedxml-0.7.1 dj-database-url-2.1.0 django-4.2.8 django-ckeditor-6.7.0 django-filter-23.5 django-js-asset-2.2.0 django-otp-1.3.0 django-phonenumber-field-7.2.0 django-rename-app-0.1.5 django-reversion-5.0.9 django-rq-2.10.1 django-xforwardedfor-middleware-2.0 djangorestframework-3.14.0 djangorestframework-simplejwt-5.3.1 dnspython-2.4.2 drf-spectacular-0.27.0 feedparser-6.0.11 gevent-23.9.1 greenlet-3.0.3 inflection-0.5.1 lxml-4.9.4 modoboa-2.2.3 oath-1.4.4 ovh-1.1.0 passlib-1.7.4 phonenumbers-8.13.27 progressbar33-2.4 pypng-0.20220715.0 python-dateutil-2.8.2 qrcode-7.4.2 redis-5.1.0a1 reportlab-4.0.8 requests-file-1.5.1 rq-1.15.1 rrdtool-0.1.16 sgmllib3k-1.0.0 sqlparse-0.4.4 tldextract-5.1.1 typing-extensions-4.9.0 uritemplate-4.1.1 WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv root@mail:/home/carlos# cd /srv/modoboa root@mail:/srv/modoboa# cd instance root@mail:/srv/modoboa/instance# python manage.py migrate Command 'python' not found, did you mean: command 'python3' from deb python3 command 'python' from deb python-is-python3 root@mail:/srv/modoboa/instance# sudo ln -s /usr/bin/python3 /usr/bin/python root@mail:/srv/modoboa/instance# python manage.py migrate Traceback (most recent call last): File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 412, in run_from_argv self.execute(*args, **cmd_options) File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 458, in execute output = self.handle(*args, **options) File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 103, in wrapper saved_locale = translation.get_language() File "/usr/local/lib/python3.10/dist-packages/django/utils/translation/__init__.py", line 210, in get_language return _trans.get_language() File "/usr/local/lib/python3.10/dist-packages/django/utils/translation/__init__.py", line 65, in __getattr__ if settings.USE_I18N: File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 102, in __getattr__ self._setup(name) File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 89, in _setup self._wrapped = Settings(settings_module) File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 217, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/srv/modoboa/instance/instance/settings.py", line 422, in <module> from modoboa_amavis import settings as modoboa_amavis_settings ModuleNotFoundError: No module named 'modoboa_amavis' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/srv/modoboa/instance/manage.py", line 22, in <module> main() File "/srv/modoboa/instance/manage.py", line 18, in main execute_from_command_line(sys.argv) File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 442, in execute_from_command_line utility.execute() File "/usr/local/lib/python3.10/dist-packages/django/core/management/__init__.py", line 436, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/usr/local/lib/python3.10/dist-packages/django/core/management/base.py", line 425, in run_from_argv connections.close_all() File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 84, in close_all for conn in self.all(initialized_only=True): File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 76, in all return [ File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 73, in __iter__ return iter(self.settings) File "/usr/local/lib/python3.10/dist-packages/django/utils/functional.py", line 57, in __get__ res = instance.__dict__[self.name] = self.func(instance) File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 45, in settings self._settings = self.configure_settings(self._settings) File "/usr/local/lib/python3.10/dist-packages/django/db/utils.py", line 148, in configure_settings databases = super().configure_settings(databases) File "/usr/local/lib/python3.10/dist-packages/django/utils/connection.py", line 50, in configure_settings settings = getattr(django_settings, self.settings_name) File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 102, in __getattr__ self._setup(name) File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 89, in _setup self._wrapped = Settings(settings_module) File "/usr/local/lib/python3.10/dist-packages/django/conf/__init__.py", line 217, in __init__ mod = importlib.import_module(self.SETTINGS_MODULE) File "/usr/lib/python3.10/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1050, in _gcd_import File "<frozen importlib._bootstrap>", line 1027, in _find_and_load File "<frozen importlib._bootstrap>", line 1006, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 688, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/srv/modoboa/instance/instance/settings.py", line 422, in <module> from modoboa_amavis import settings as modoboa_amavis_settings ModuleNotFoundError: No module named 'modoboa_amavis' root@mail:/srv/modoboa/instance# dir frontend instance manage.py media sitestatic root@mail:/srv/modoboa/instance# cd instance root@mail:/srv/modoboa/instance/instance# dir asgi.py __init__.py __pycache__ settings.py urls.py wsgi.py root@mail:/srv/modoboa/instance/instance# cd .. root@mail:/srv/modoboa/instance# # Current behavior https://mail.sdomain.com/core/#info/ shows contacts and webmail can be upgraded. <!-- Explain the behavior you're seeing that you think is a bug, and explain how you think things should behave instead. --> # Expected behavior easily upgrade newer versions. push button, upgrade like some laravel deployments are implementing. # Video/Screenshot link (optional) attached. ![modoboa](https://github.com/modoboa/modoboa/assets/40796501/0c064063-ba1d-49c9-8bab-4d5a3192ae36)
kerem 2026-02-27 11:19:05 +03:00
Author
Owner

@Spitfireap commented on GitHub (Dec 28, 2023):

Hi, can you check that you've enabled your venv ?
source /srv/modoboa/env/bin/activate

<!-- gh-comment-id:1871347198 --> @Spitfireap commented on GitHub (Dec 28, 2023): Hi, can you check that you've enabled your venv ? `source /srv/modoboa/env/bin/activate`
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/modoboa-modoboa#1782
No description provided.