Unable to load celery application.
While trying to load the module contentcuration the following error occurred:
Traceback (most recent call last):
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/celery/bin/celery.py", line 141, in celery
app = find_app(app)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/celery/app/utils.py", line 383, in find_app
sym = symbol_by_name(app, imp=imp)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/kombu/utils/imports.py", line 59, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/celery/utils/imports.py", line 109, in import_from_cwd
return imp(module, package=package)
File "/home/bjester/.local/share/uv/python/cpython-3.10.19-linux-x86_64-gnu/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 "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/__init__.py", line 3, in <module>
from .celery import app as celery_app # noqa
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/celery.py", line 14, in <module>
app.config_from_object(settings.CELERY)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/django/conf/__init__.py", line 69, in _setup
self._wrapped = Settings(settings_module)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/django/conf/__init__.py", line 170, in __init__
mod = importlib.import_module(self.SETTINGS_MODULE)
File "/home/bjester/.local/share/uv/python/cpython-3.10.19-linux-x86_64-gnu/lib/python3.10/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/dev_settings.py", line 2, in <module>
from .not_production_settings import * # noqa
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/not_production_settings.py", line 1, in <module>
from .settings import * # noqa
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/settings.py", line 22, in <module>
from contentcuration.utils.secretmanagement import get_secret
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/contentcuration/contentcuration/utils/secretmanagement.py", line 6, in <module>
from google.cloud import kms
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/google/cloud/kms/__init__.py", line 17, in <module>
from google.cloud.kms_v1.services.key_management_service.client import (
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/google/cloud/kms_v1/__init__.py", line 17, in <module>
from .services.key_management_service import KeyManagementServiceClient
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/google/cloud/kms_v1/services/key_management_service/__init__.py", line 16, in <module>
from .client import KeyManagementServiceClient
File "/home/bjester/Projects/learningequality/studio/issue-5691-941b2f/.venv/lib/python3.10/site-packages/google/cloud/kms_v1/services/key_management_service/client.py", line 21, in <module>
import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'
Developers may encounter this and not understand what's wrong. The current approach makes developer setup brittle towards dependency changes.
❌ This issue is not open for contribution. Visit Contributing guidelines to learn about the contributing process and how to find suitable issues.
Observed behavior
I've been using
uv venv --seedto create virtualenvs. The--seedparameter adds inpipandsetuptools, but usually the most recent versions. This is somewhat needed because studio usespipexplicitly, but moreso because the dependency onsetuptoolsis implicit. This uncovered a dependency conflict with a package that isn't compatible with it.Errors and logs
Expected behavior
We should add an explicit dependency on
setuptoolsso we can ensure compatibility across all packages.User-facing consequences
Developers may encounter this and not understand what's wrong. The current approach makes developer setup brittle towards dependency changes.
Steps to reproduce
uv venv --seedto create virtualenvmake devceleryworkersContext
Observed testing: #5695