Skip to content

edx-sysadmin installation fails with Tutor v21.0.1 #750

@mrtmm

Description

@mrtmm

Expected Behavior

Based on the installation guide, when installing the edx-sysadmin plugin with Tutor v21.0.1, the following steps should work:

  1. tutor config save --append OPENEDX_EXTRA_PIP_REQUIREMENTS="edx-sysadmin==0.4.1"
  2. tutor images build openedx

Current Behavior

the image build fails with:

3.686 Traceback (most recent call last):
3.686   File "/openedx/edx-platform/./manage.py", line 99, in <module>
3.686     execute_from_command_line([sys.argv[0]] + django_args)
3.686   File "/openedx/venv/lib/python3.11/site-packages/django/core/management/__init__.py", line 442, in execute_from_command_line
3.687     utility.execute()
3.687   File "/openedx/venv/lib/python3.11/site-packages/django/core/management/__init__.py", line 436, in execute
3.687     self.fetch_command(subcommand).run_from_argv(self.argv)
3.687   File "/openedx/venv/lib/python3.11/site-packages/django/core/management/base.py", line 420, in run_from_argv
3.687     self.execute(*args, **cmd_options)
3.687   File "/openedx/venv/lib/python3.11/site-packages/django/core/management/base.py", line 461, in execute
3.687     self.check(**check_kwargs)
3.687   File "/openedx/venv/lib/python3.11/site-packages/django/core/management/base.py", line 496, in check
3.688     all_issues = checks.run_checks(
3.688                  ^^^^^^^^^^^^^^^^^^
3.688   File "/openedx/venv/lib/python3.11/site-packages/django/core/checks/registry.py", line 89, in run_checks
3.688     new_errors = check(app_configs=app_configs, databases=databases)
3.688                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.688   File "/openedx/venv/lib/python3.11/site-packages/django/core/checks/urls.py", line 16, in check_url_config
3.688     return check_resolver(resolver)
3.688            ^^^^^^^^^^^^^^^^^^^^^^^^
3.688   File "/openedx/venv/lib/python3.11/site-packages/django/core/checks/urls.py", line 26, in check_resolver
3.688     return check_method()
3.688            ^^^^^^^^^^^^^^
3.688   File "/openedx/venv/lib/python3.11/site-packages/django/urls/resolvers.py", line 531, in check
3.688     for pattern in self.url_patterns:
3.688                    ^^^^^^^^^^^^^^^^^
3.688   File "/openedx/venv/lib/python3.11/site-packages/django/utils/functional.py", line 47, in __get__
3.689     res = instance.__dict__[self.name] = self.func(instance)
3.689                                          ^^^^^^^^^^^^^^^^^^^
3.689   File "/openedx/venv/lib/python3.11/site-packages/django/urls/resolvers.py", line 718, in url_patterns
3.689     patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)
3.689                        ^^^^^^^^^^^^^^^^^^^
3.689   File "/openedx/venv/lib/python3.11/site-packages/django/utils/functional.py", line 47, in __get__
3.689     res = instance.__dict__[self.name] = self.func(instance)
3.689                                          ^^^^^^^^^^^^^^^^^^^
3.689   File "/openedx/venv/lib/python3.11/site-packages/django/urls/resolvers.py", line 711, in urlconf_module
3.689     return import_module(self.urlconf_name)
3.689            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.689   File "/opt/pyenv/versions/3.11.8/lib/python3.11/importlib/__init__.py", line 126, in import_module
3.689     return _bootstrap._gcd_import(name[level:], package, level)
3.689            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.689   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
3.689   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
3.689   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
3.689   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
3.689   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
3.689   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
3.689   File "/openedx/edx-platform/lms/urls.py", line 999, in <module>
3.689     urlpatterns.extend(get_plugin_url_patterns(ProjectType.LMS))
3.689                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.689   File "/openedx/venv/lib/python3.11/site-packages/edx_django_utils/plugins/plugin_urls.py", line 34, in get_plugin_url_patterns
3.689     return [
3.689            ^
3.689   File "/openedx/venv/lib/python3.11/site-packages/edx_django_utils/plugins/plugin_urls.py", line 35, in <listcomp>
3.689     _get_url(url_module_path, url_config)
3.689   File "/openedx/venv/lib/python3.11/site-packages/edx_django_utils/plugins/plugin_urls.py", line 24, in _get_url
3.689     return re_path(regex, include((url_module_path, app_name), namespace=namespace))
3.689                           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.689   File "/openedx/venv/lib/python3.11/site-packages/django/urls/conf.py", line 39, in include
3.690     urlconf_module = import_module(urlconf_module)
3.690                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.690   File "/opt/pyenv/versions/3.11.8/lib/python3.11/importlib/__init__.py", line 126, in import_module
3.690     return _bootstrap._gcd_import(name[level:], package, level)
3.690            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
3.690   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
3.690   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
3.690   File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
3.690   File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
3.690   File "<frozen importlib._bootstrap_external>", line 940, in exec_module
3.690   File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
3.690   File "/openedx/venv/lib/python3.11/site-packages/edx_sysadmin/urls.py", line 7, in <module>
3.690     from edx_sysadmin.views import (
3.690   File "/openedx/venv/lib/python3.11/site-packages/edx_sysadmin/views.py", line 26, in <module>
3.690     from edx_sysadmin import git_import
3.690   File "/openedx/venv/lib/python3.11/site-packages/edx_sysadmin/git_import.py", line 27, in <module>
3.690     from edx_sysadmin.utils.utils import (
3.690   File "/openedx/venv/lib/python3.11/site-packages/edx_sysadmin/utils/utils.py", line 22, in <module>
3.690     from git import InvalidGitRepositoryError, NoSuchPathError, Repo
3.690 ModuleNotFoundError: No module named 'git'

Steps to Reproduce

Running Tutor v21.0.1

  1. tutor config save --append OPENEDX_EXTRA_PIP_REQUIREMENTS="edx-sysadmin==0.4.1"
  2. tutor images build openedx

Possible Solution

Add GitPython dependency to /edx_sysadmin/pyproject.toml‎ ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions