Kolibri 0.15.2 Python 3.10 error on Ubuntu 22.04 "ImportError: cannot import name 'Iterator' from 'collections' (/usr/lib/python3.10/collections/__init__.py)"
See original GitHub issueThis promising work from earlier in April seemed tailored to getting Kolibri 0.15.2 working with Python 3.10? [CLARIF: No, Kolibri seems to be deferring support for Python 3.10 until a later date]
Somehow however the just-released Kolibri 0.15.2 (https://learningequality.org/r/kolibri-deb-latest) appears to install on Ubuntu Desktop 22.04 on x86_64 (as part of Internet-in-a-Box) — but then serious Python 3.10 problems appear:
TASK [kolibri : Provision Kolibri, while setting: facility name, admin acnt / password, preset type, and language] *****************************************************
fatal: [127.0.0.1]: FAILED! => {"changed": true, "cmd": "export KOLIBRI_HOME=\"/library/kolibri\" && \"/usr/bin/kolibri\" manage provisiondevice --facility \"Kolibri-in-a-Box\" --superusername \"Admin\" --superuserpassword \"changeme\" --preset \"formal\" --language_id \"en\" #--preset \"formal\" --language_id \"en\" --verbosity 0 --noinput\n", "delta": "0:00:01.342052", "end": "2022-04-29 21:47:01.194557", "msg": "non-zero return code", "rc": 1, "start": "2022-04-29 21:46:59.852505", "stderr": "INFO: No C extensions are available for this platform\nTraceback (most recent call last):\n File \"/usr/bin/kolibri\", line 11, in <module>\n load_entry_point('kolibri==0.15.2', 'console_scripts', 'kolibri')()\n File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 479, in load_entry_point\n return get_distribution(dist).load_entry_point(group, name)\n File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2861, in load_entry_point\n return ep.load()\n File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2465, in load\n return self.resolve()\n File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2471, in resolve\n module = __import__(self.module_name, fromlist=['__name__'], level=0)\n File \"/usr/lib/python3/dist-packages/kolibri/utils/cli.py\", line 12, in <module>\n from django.core.management import execute_from_command_line\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/__init__.py\", line 13, in <module>\n from django.core.management.base import (\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/base.py\", line 17, in <module>\n from django.db.migrations.exceptions import MigrationSchemaMissing\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/__init__.py\", line 2, in <module>\n from .operations import * # NOQA\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/__init__.py\", line 1, in <module>\n from .fields import AddField, AlterField, RemoveField, RenameField\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/fields.py\", line 4, in <module>\n from django.db.models.fields import NOT_PROVIDED\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/__init__.py\", line 5, in <module>\n from django.db.models.deletion import (\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/deletion.py\", line 5, in <module>\n from django.db.models import signals, sql\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/__init__.py\", line 2, in <module>\n from django.db.models.sql.query import * # NOQA\n File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/query.py\", line 11, in <module>\n from collections import Counter, Iterator, Mapping, OrderedDict\nImportError: cannot import name 'Iterator' from 'collections' (/usr/lib/python3.10/collections/__init__.py)", "stderr_lines": ["INFO: No C extensions are available for this platform", "Traceback (most recent call last):", " File \"/usr/bin/kolibri\", line 11, in <module>", " load_entry_point('kolibri==0.15.2', 'console_scripts', 'kolibri')()", " File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 479, in load_entry_point", " return get_distribution(dist).load_entry_point(group, name)", " File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2861, in load_entry_point", " return ep.load()", " File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2465, in load", " return self.resolve()", " File \"/usr/lib/python3/dist-packages/pkg_resources/__init__.py\", line 2471, in resolve", " module = __import__(self.module_name, fromlist=['__name__'], level=0)", " File \"/usr/lib/python3/dist-packages/kolibri/utils/cli.py\", line 12, in <module>", " from django.core.management import execute_from_command_line", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/__init__.py\", line 13, in <module>", " from django.core.management.base import (", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/base.py\", line 17, in <module>", " from django.db.migrations.exceptions import MigrationSchemaMissing", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/__init__.py\", line 2, in <module>", " from .operations import * # NOQA", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/__init__.py\", line 1, in <module>", " from .fields import AddField, AlterField, RemoveField, RenameField", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/fields.py\", line 4, in <module>", " from django.db.models.fields import NOT_PROVIDED", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/__init__.py\", line 5, in <module>", " from django.db.models.deletion import (", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/deletion.py\", line 5, in <module>", " from django.db.models import signals, sql", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/__init__.py\", line 2, in <module>", " from django.db.models.sql.query import * # NOQA", " File \"/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/query.py\", line 11, in <module>", " from collections import Counter, Iterator, Mapping, OrderedDict", "ImportError: cannot import name 'Iterator' from 'collections' (/usr/lib/python3.10/collections/__init__.py)"], "stdout": "", "stdout_lines": []}
Likewise systemctl start kolibri
fails, leading to this systemctl status kolibri
output/trace:
Apr 29 21:55:00 box kolibri[3985]: INFO: No C extensions are available for this platform
Apr 29 21:55:01 box kolibri[3985]: Traceback (most recent call last):
Apr 29 21:55:01 box kolibri[3985]: File "/usr/bin/kolibri", line 11, in <module>
Apr 29 21:55:01 box kolibri[3985]: load_entry_point('kolibri==0.15.2', 'console_scripts', 'kolibri')()
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 479, in load_entry_point
Apr 29 21:55:01 box kolibri[3985]: return get_distribution(dist).load_entry_point(group, name)
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2861, in load_entry_point
Apr 29 21:55:01 box kolibri[3985]: return ep.load()
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2465, in load
Apr 29 21:55:01 box kolibri[3985]: return self.resolve()
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 2471, in resolve
Apr 29 21:55:01 box kolibri[3985]: module = __import__(self.module_name, fromlist=['__name__'], level=0)
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/utils/cli.py", line 12, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.core.management import execute_from_command_line
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/__init__.py", line 13, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.core.management.base import (
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/core/management/base.py", line 17, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.db.migrations.exceptions import MigrationSchemaMissing
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/__init__.py", line 2, in <module>
Apr 29 21:55:01 box kolibri[3985]: from .operations import * # NOQA
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/__init__.py", line 1, in <module>
Apr 29 21:55:01 box kolibri[3985]: from .fields import AddField, AlterField, RemoveField, RenameField
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/migrations/operations/fields.py", line 4, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.db.models.fields import NOT_PROVIDED
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/__init__.py", line 5, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.db.models.deletion import (
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/deletion.py", line 5, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.db.models import signals, sql
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/__init__.py", line 2, in <module>
Apr 29 21:55:01 box kolibri[3985]: from django.db.models.sql.query import * # NOQA
Apr 29 21:55:01 box kolibri[3985]: File "/usr/lib/python3/dist-packages/kolibri/dist/django/db/models/sql/query.py", line 11, in <module>
Apr 29 21:55:01 box kolibri[3985]: from collections import Counter, Iterator, Mapping, OrderedDict
Apr 29 21:55:01 box kolibri[3985]: ImportError: cannot import name 'Iterator' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
Apr 29 21:55:01 box systemd[1]: kolibri.service: Control process exited, code=exited, status=1/FAILURE
Apr 29 21:55:01 box systemd[1]: kolibri.service: Failed with result 'exit-code'.
Apr 29 21:55:01 box systemd[1]: Failed to start Kolibri.
Any suggestions?
Thanks if possible!
Earlier/Stale references to this same topic:
- “Kolibri doesn’t currently support Python 3.10.0 or higher” https://kolibri-dev.readthedocs.io/en/develop/getting_started.html#python-and-pip
- "ImportError: cannot import name ‘Iterator’ from ‘collections’ (Py 3.10) https://community.learningequality.org/t/importerror-cannot-import-name-iterator-from-collections-py-3-10/2266
- PR iiab/iiab#3189
Issue Analytics
- State:
- Created a year ago
- Comments:9 (4 by maintainers)
Top Results From Across the Web
cannot import name 'Iterator' from 'collections' (Py 3.10) - Kolibri
Observed behavior kolibri command crashes immediately Errors and ... ImportError: cannot import name 'Iterator' from 'collections' (Py 3.10).
Read more >cannot import name 'Iterable' from 'collections' in Python
1. When searching for this error, it seems that Python 3.10 has compatibility issues which cause this error to appear; I saw it...
Read more >Installation with pip fails - cannot import name 'Mapping' from ...
Operating system: Ubuntu 22.04.1 wxPython version & source: 4.20 via ... from collections import Mapping ImportError: cannot import name ...
Read more >ImportError: cannot import name Iterable from 'collections'
The Python "ImportError: cannot import name 'Iterable' from 'collections'" occurs for multiple reasons: Trying to import the Iterable class from the collections ......
Read more >ImportError cannot import name Iterabler from collections ...
ImportError -cannot import name Iterabler from collections python 3-10. The Iterable abstract class was removed from collections in Python 3.10.
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
Done & done! 🙂
Confirmed: Kolibri 0.15.3 now works on Ubuntu 22.04 (and Python 3.10) with https://internet-in-a-box.org
(And hopefully 0.15.3 will be posted to https://learningequality.org/download/ shortly, to mainline this for others!)