Skip to content

Fix ModuleNotFoundError: No module named 'pkg_resources'#1363

Closed
Copilot wants to merge 2 commits intomainfrom
copilot/fix-pkg-resources-dependency
Closed

Fix ModuleNotFoundError: No module named 'pkg_resources'#1363
Copilot wants to merge 2 commits intomainfrom
copilot/fix-pkg-resources-dependency

Conversation

Copy link
Contributor

Copilot AI commented Feb 26, 2026

pysolr imports from pkg_resources (part of setuptools), which is no longer bundled by default in newer Python environments, causing a startup crash when Django loads search.urls.

O que esse PR faz?

Adiciona setuptools>=78.1.1 explicitamente ao requirements/base.txt, garantindo que pkg_resources esteja disponível. A versão mínima 78.1.1 também evita uma vulnerabilidade de path traversal em PackageIndex.download presente em versões anteriores.

Onde a revisão poderia começar?

requirements/base.txt — única linha adicionada.

Como este poderia ser testado manualmente?

  1. Construir a imagem Docker sem setuptools instalado previamente
  2. Iniciar a aplicação e verificar que GET /search/ não retorna erro 500 com ModuleNotFoundError: No module named 'pkg_resources'

Algum cenário de contexto que queira dar?

No Python 3.11+, setuptools (e consequentemente pkg_resources) não é mais instalado automaticamente no ambiente. O pysolr==3.9.0 faz from pkg_resources import ... no nível de módulo, o que quebrava o carregamento de todas as URLs da aplicação ao importar search.urls.

Screenshots

N/A

Quais são tickets relevantes?

N/A

Referências

Original prompt

This section details on the original issue you should resolve

<issue_title>Problema de dependência pkg_resources</issue_title>
<issue_description>### Descrição do problema

           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.634858508Z   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/app/config/urls.py", line 69, in <module>
    re_path(r"^search/", include("search.urls")),
2026-02-25T15:57:04.634973070Z                          ^^^^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.634983359Z   File "/usr/local/lib/python3.11/site-packages/django/urls/conf.py", line 39, in include
2026-02-25T15:57:04.635000111Z     urlconf_module = import_module(urlconf_module)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
2026-02-25T15:57:04.635068585Z            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
2026-02-25T15:57:04.635089337Z   File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 690, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 940, in exec_module
  File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed
  File "/app/search/urls.py", line 3, in <module>
2026-02-25T15:57:04.635151530Z     from search.views import search
2026-02-25T15:57:04.635161686Z   File "/app/search/views.py", line 4, in <module>
    import pysolr
  File "/usr/local/lib/python3.11/site-packages/pysolr.py", line 14, in <module>
    from pkg_resources import DistributionNotFound, get_distribution, parse_version
2026-02-25T15:57:04.635203360Z ModuleNotFoundError: No module named 'pkg_resources'
2026-02-25T15:57:04.635213391Z 
During handling of the above exception, another exception occurred:

Traceback (most recent call last):
2026-02-25T15:57:04.635253323Z   File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
    response = get_response(request)
               ^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/whitenoise/middleware.py", line 123, in __call__
    return self.get_response(request)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 57, in inner
    response = response_for_exception(request, exc)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 141, in response_for_exception
2026-02-25T15:57:04.635407044Z     response = handle_uncaught_exception(
2026-02-25T15:57:04.635467802Z                ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/core/handlers/exception.py", line 185, in handle_uncaught_exception
2026-02-25T15:57:04.635533014Z     callback = resolver.resolve_error_handler(500)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.635580180Z   File "/usr/local/lib/python3.11/site-packages/django/urls/resolvers.py", line 732, in resolve_error_handler
    callback = getattr(self.urlconf_module, "handler%s" % view_type, None)
2026-02-25T15:57:04.635623219Z                        ^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/site-packages/django/utils/functional.py", line 47, in __get__
2026-02-25T15:57:04.635658940Z     res = instance.__dict__[self.name] = self.func(instance)
2026-02-25T15:57:04.635669367Z                                          ^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.635679621Z   File "/usr/local/lib/python3.11/site-packages/django/urls/resolvers.py", line 711, in urlconf_module
2026-02-25T15:57:04.635690122Z     return import_module(self.urlconf_name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.635712708Z   File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
2026-02-25T15:57:04.635780031Z   File "<frozen importlib._bootstrap>", line 1204, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1176, in _find_and_load
20...

</details>



<!-- START COPILOT CODING AGENT SUFFIX -->

- Fixes scieloorg/core#1361

<!-- START COPILOT CODING AGENT TIPS -->
---

🔒 GitHub Advanced Security automatically protects Copilot coding agent pull requests. You can protect all pull requests by enabling Advanced Security for your repositories. [Learn more about Advanced Security.](https://gh.io/cca-advanced-security)

…FoundError

Co-authored-by: robertatakenaka <505143+robertatakenaka@users.noreply.github.com>
Copilot AI changed the title [WIP] Fix pkg_resources dependency issue Fix ModuleNotFoundError: No module named 'pkg_resources' Feb 26, 2026
@robertatakenaka
Copy link
Member

corrigido com PR #1364

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants