Skip to content

Work around pyFF 2.1.4 "Worker failed to boot" error due to missing pkg_resources module by pinning to setuptools < 82 #307

@xenophonf

Description

@xenophonf

This Works For Me(TM):

pip install --no-cache-dir "setuptools<82" pyff==2.1.4

The latest setuptools release removed the long deprecated pkg_resources module, with work beginning to remove setuptools' own dependencies on it starting in 2021. However, pyFF 2.1.4 depends on Pyramid, and Pyramid currently (as of version 2.0.2, released on 2023-08-25) depends on pkg_resources; cf. Pylons/pyramid#3731. While deployers continue to be able to install pyFF, it will fail to run with errors similar to the following if deployers do not also pin setuptools to a release prior to version 82.0.0:

[2026-02-24 16:04:44 +0000] [1] [INFO] Starting gunicorn 25.1.0
[2026-02-24 16:04:44 +0000] [1] [INFO] Listening at: http://0.0.0.0:8080 (1)
[2026-02-24 16:04:44 +0000] [1] [INFO] Using worker: sync
[2026-02-24 16:04:44 +0000] [1] [INFO] Control socket listening at /home/solon-mdq/gunicorn.ctl
[2026-02-24 16:04:44 +0000] [8] [INFO] Booting worker with pid: 8
[2026-02-24 16:04:44 +0000] [8] [ERROR] Exception in worker process
Traceback (most recent call last):
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/arbiter.py", line 708, in spawn_worker
    worker.init_process()
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 136, in init_process
    self.load_wsgi()
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/workers/base.py", line 148, in load_wsgi
    self.wsgi = self.app.wsgi()
                ^^^^^^^^^^^^^^^
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/app/base.py", line 66, in wsgi
    self.callable = self.load()
                    ^^^^^^^^^^^
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 57, in load
    return self.load_wsgiapp()
           ^^^^^^^^^^^^^^^^^^^
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/app/wsgiapp.py", line 47, in load_wsgiapp
    return util.import_app(self.app_uri)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/gunicorn/util.py", line 377, in import_app
    mod = importlib.import_module(module)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1387, in _gcd_import
  File "<frozen importlib._bootstrap>", line 1360, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1331, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 935, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 999, in exec_module
  File "<frozen importlib._bootstrap>", line 488, in _call_with_frames_removed
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/pyff/wsgi.py", line 3, in <module>
    from pyff.api import mkapp
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/pyff/api.py", line 9, in <module>
    import pyramid.httpexceptions as exc
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/pyramid/httpexceptions.py", line 140, in <module>
    from pyramid.util import text_
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/pyramid/util.py", line 8, in <module>
    from pyramid.path import DottedNameResolver as _DottedNameResolver
  File "/home/solon-mdq/.local/lib/python3.12/site-packages/pyramid/path.py", line 3, in <module>
    import pkg_resources
ModuleNotFoundError: No module named 'pkg_resources'
No module named 'pkg_resources'
[2026-02-24 16:04:44 +0000] [8] [INFO] Worker exiting (pid: 8)
[2026-02-24 16:04:44 +0000] [1] [ERROR] Worker (pid:8) exited with code 3.
[2026-02-24 16:04:44 +0000] [1] [ERROR] Shutting down: Master
[2026-02-24 16:04:44 +0000] [1] [ERROR] Reason: Worker failed to boot.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions