I’m using the version: tutor/CHANGELOG.md at master · overhangio/tutor · GitHub
The tutor in this version uses the Openedx version: (open-release/maple.3
)
If we open the Openedx code, in the final repository, in the MAPLE
version, we see that it uses a third library called: edx-i18n-tools==0.8.1
as a dependency:
And parallel to that, it uses the Django version: django==3.2.13
.
In this version of the tutor, I need to run the following command via DockerFile:
RUN i18n_tool generate -v
When running, the following error is displayed:
INFO:i18n.generate:Merging djangojs.po locale en
INFO:i18n.execute:Executing in . ...
INFO:i18n.execute:django-admin.py compilemessages -v1
/openedx/venv/bin/django-admin.py:17: RemovedInDjango40Warning: django-admin.py is deprecated in favor of django-admin.
As we saw earlier, we are using Django 3.2.13 and,
Django in version 3.1 reported several changes as per the link:
Including: The django-admin.py entry point is deprecated in favor of django-admin.
And for me, the error is obvious, because really, in this version of Django we have to use a more updated version of `18n-tools:
In this version 1.0.0 of i18n-tools, we have the following topic:
- Use django-admin instead of django-admin.py
Okay, we already understand the problem and now here are some comparisons.
In the i18n-tools dependency file, we have the following content:
And in the OpenEdx dependencies file, we have the following content:
…
We clearly see the difference in:
- [openedx] django==3.2.13
- [i18n-tools] django==3.2.17
- [openedx] path==16.2.0
- [i18n-tools] path==16.6.0
And so on …
If I manually install via Dockerfile the latest i18n-tools before running the command, I get the following error:
RUN pip install edx-i18n-tools==1.0.0
self._wrapped = Settings(settings_module)
File "/openedx/venv/lib/python3.8/site-packages/django/conf/__init__.py", line 170, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/opt/pyenv/versions/3.8.12/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'lms.envs.tutor.production'
Then I bring the questions that don’t want to be silenced;
- How is this tutor version using this version of i18n?
- Did no one notice this error when compiling the locales?
- What approach has the community taken to overcome this problem?
- Can I simply match the number of packages contained within i18n to be the same as the tutor and it will work?