
I'm trying to install the web UI for mailman3. I am getting the following failure. Can someone help? TIA.
(venv) mailman :~$ pip install mailman-web mailman-hyperkitty Collecting mailman-web Downloading mailman_web-0.0.9-py3-none-any.whl.metadata (3.2 kB) Collecting mailman-hyperkitty Downloading mailman-hyperkitty-1.2.1.tar.gz (22 kB) Preparing metadata (setup.py) ... done Collecting django<4.3,>=4.0 (from mailman-web) Downloading django-4.2.25-py3-none-any.whl.metadata (4.2 kB) Collecting hyperkitty (from mailman-web) Downloading hyperkitty-1.3.12-py3-none-any.whl.metadata (3.6 kB) Collecting postorius (from mailman-web) Downloading postorius-1.3.13-py3-none-any.whl.metadata (2.9 kB) Collecting whoosh (from mailman-web) Downloading Whoosh-2.7.4-py2.py3-none-any.whl.metadata (3.1 kB) Requirement already satisfied: mailman in ./venv/lib/python3.12/site-packages (from mailman-hyperkitty) (3.3.10) Requirement already satisfied: requests in ./venv/lib/python3.12/site-packages (from mailman-hyperkitty) (2.32.5) Requirement already satisfied: zope.interface in ./venv/lib/python3.12/site-packages (from mailman-hyperkitty) (8.0.1) Requirement already satisfied: asgiref<4,>=3.6.0 in ./venv/lib/python3.12/site-packages (from django<4.3,>=4.0->mailman- web) (3.10.0) Requirement already satisfied: sqlparse>=0.3.1 in ./venv/lib/python3.12/site-packages (from django<4.3,>=4.0->mailman-we b) (0.5.3) Collecting django-compressor>=1.3 (from hyperkitty->mailman-web) Downloading django_compressor-4.5.1-py2.py3-none-any.whl.metadata (5.0 kB) Collecting django-extensions>=1.3.7 (from hyperkitty->mailman-web) Downloading django_extensions-4.1-py3-none-any.whl.metadata (6.1 kB) Collecting django-gravatar2>=1.0.6 (from hyperkitty->mailman-web) Downloading django_gravatar2-1.4.5-py2.py3-none-any.whl.metadata (4.3 kB) Collecting django-haystack>=2.8.0 (from hyperkitty->mailman-web) Downloading django_haystack-3.3.0.tar.gz (467 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 467.3/467.3 kB 3.8 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting django-q2>=1.0.0 (from hyperkitty->mailman-web) Downloading django_q2-1.8.0-py3-none-any.whl.metadata (9.5 kB) Collecting django_mailman3>=1.3.13 (from hyperkitty->mailman-web) Downloading django_mailman3-1.3.15-py3-none-any.whl.metadata (5.4 kB) Collecting djangorestframework>=3.0.0 (from hyperkitty->mailman-web) Downloading djangorestframework-3.16.1-py3-none-any.whl.metadata (11 kB) Requirement already satisfied: flufl.lock>=4.0 in ./venv/lib/python3.12/site-packages (from hyperkitty->mailman-web) (8. 2.0) Collecting mailmanclient>=3.3.3 (from hyperkitty->mailman-web) Downloading mailmanclient-3.3.5.tar.gz (89 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 89.6/89.6 kB 1.2 MB/s eta 0:00:00 Preparing metadata (setup.py) ... done Collecting mistune>=3.0 (from hyperkitty->mailman-web) Downloading mistune-3.1.4-py3-none-any.whl.metadata (1.8 kB) Collecting networkx>=2.0 (from hyperkitty->mailman-web) Downloading networkx-3.5-py3-none-any.whl.metadata (6.3 kB) Requirement already satisfied: python-dateutil>=2.0 in ./venv/lib/python3.12/site-packages (from hyperkitty->mailman-web ) (2.9.0.post0) Collecting robot-detection>=0.3 (from hyperkitty->mailman-web) Downloading robot-detection-0.4.tar.gz (6.4 kB) Preparing metadata (setup.py) ... done Requirement already satisfied: aiosmtpd>=1.4.3 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (1.4.6) Requirement already satisfied: alembic!=1.7.0,>=1.6.2 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hype rkitty) (1.17.0) Requirement already satisfied: atpublic in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (6.0.2 ) Requirement already satisfied: authheaders>=0.16 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitt y) (0.16.3) Requirement already satisfied: authres>=1.0.1 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (1.2.0) Requirement already satisfied: click>=8.0.0 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (8 .3.0) Requirement already satisfied: dnspython>=1.14.0 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitt y) (2.8.0) Requirement already satisfied: falcon>=3.1.3 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) ( 4.1.0) Requirement already satisfied: flufl.bounce>=4.0 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitt y) (4.0) Requirement already satisfied: flufl.i18n>=3.2 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (5.2.0) Requirement already satisfied: gunicorn in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (23.0. 0) Requirement already satisfied: lazr.config in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (3. 1) Requirement already satisfied: passlib in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (1.7.4) Requirement already satisfied: sqlalchemy>=1.4.0 in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitt y) (2.0.44) Requirement already satisfied: zope.component in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (7.0) Requirement already satisfied: zope.configuration in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkit ty) (7.0) Requirement already satisfied: zope.event in ./venv/lib/python3.12/site-packages (from mailman->mailman-hyperkitty) (6.0 ) Collecting readme_renderer[md] (from postorius->mailman-web) Downloading readme_renderer-44.0-py3-none-any.whl.metadata (2.8 kB) Requirement already satisfied: charset_normalizer<4,>=2 in ./venv/lib/python3.12/site-packages (from requests->mailman-h yperkitty) (3.4.4) Requirement already satisfied: idna<4,>=2.5 in ./venv/lib/python3.12/site-packages (from requests->mailman-hyperkitty) ( 3.11) Requirement already satisfied: urllib3<3,>=1.21.1 in ./venv/lib/python3.12/site-packages (from requests->mailman-hyperki tty) (2.5.0) Requirement already satisfied: certifi>=2017.4.17 in ./venv/lib/python3.12/site-packages (from requests->mailman-hyperki tty) (2025.10.5) Requirement already satisfied: attrs in ./venv/lib/python3.12/site-packages (from aiosmtpd>=1.4.3->mailman->mailman-hype rkitty) (25.4.0) Requirement already satisfied: Mako in ./venv/lib/python3.12/site-packages (from alembic!=1.7.0,>=1.6.2->mailman->mailma n-hyperkitty) (1.3.10) Requirement already satisfied: typing-extensions>=4.12 in ./venv/lib/python3.12/site-packages (from alembic!=1.7.0,>=1.6 .2->mailman->mailman-hyperkitty) (4.15.0) Requirement already satisfied: dkimpy>=0.7.1 in ./venv/lib/python3.12/site-packages (from authheaders>=0.16->mailman->ma ilman-hyperkitty) (1.1.8) Requirement already satisfied: publicsuffix2 in ./venv/lib/python3.12/site-packages (from authheaders>=0.16->mailman->ma ilman-hyperkitty) (2.20191221) Collecting django-appconf>=1.0.3 (from django-compressor>=1.3->hyperkitty->mailman-web) Downloading django_appconf-1.1.0-py3-none-any.whl.metadata (5.2 kB) Collecting rcssmin==1.1.2 (from django-compressor>=1.3->hyperkitty->mailman-web) Downloading rcssmin-1.1.2-cp312-cp312-manylinux1_x86_64.whl.metadata (4.5 kB) Collecting rjsmin==1.2.2 (from django-compressor>=1.3->hyperkitty->mailman-web) Downloading rjsmin-1.2.2-cp312-cp312-manylinux1_x86_64.whl.metadata (4.4 kB) Requirement already satisfied: packaging in ./venv/lib/python3.12/site-packages (from django-haystack>=2.8.0->hyperkitty ->mailman-web) (25.0) Collecting django-allauth>=0.63 (from django-allauth[openid,socialaccount]>=0.63->django_mailman3>=1.3.13->hyperkitty->m ailman-web) Downloading django_allauth-65.12.1.tar.gz (2.0 MB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.0/2.0 MB 7.1 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... done Preparing metadata (pyproject.toml) ... done Collecting django-picklefield<4.0,>=3.1 (from django-q2>=1.0.0->hyperkitty->mailman-web) Downloading django_picklefield-3.3-py3-none-any.whl.metadata (12 kB) Requirement already satisfied: psutil in ./venv/lib/python3.12/site-packages (from flufl.lock>=4.0->hyperkitty->mailman- web) (7.1.0) Requirement already satisfied: six>=1.5 in ./venv/lib/python3.12/site-packages (from python-dateutil>=2.0->hyperkitty->m ailman-web) (1.17.0) Requirement already satisfied: greenlet>=1 in ./venv/lib/python3.12/site-packages (from sqlalchemy>=1.4.0->mailman->mail man-hyperkitty) (3.2.4) Requirement already satisfied: setuptools in ./venv/lib/python3.12/site-packages (from lazr.config->mailman->mailman-hyp erkitty) (80.9.0) Requirement already satisfied: lazr.delegates in ./venv/lib/python3.12/site-packages (from lazr.config->mailman->mailman -hyperkitty) (2.1.1) Collecting nh3>=0.2.14 (from readme_renderer[md]->postorius->mailman-web) Downloading nh3-0.3.1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (466 bytes) Collecting docutils>=0.21.2 (from readme_renderer[md]->postorius->mailman-web) Downloading docutils-0.22.2-py3-none-any.whl.metadata (15 kB) Collecting Pygments>=2.5.1 (from readme_renderer[md]->postorius->mailman-web) Downloading pygments-2.19.2-py3-none-any.whl.metadata (2.5 kB) Collecting cmarkgfm>=0.8.0 (from readme_renderer[md]->postorius->mailman-web) Downloading cmarkgfm-2025.10.20.tar.gz (145 kB) ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 145.8/145.8 kB 2.2 MB/s eta 0:00:00 Installing build dependencies ... done Getting requirements to build wheel ... error error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> [41 lines of output] Traceback (most recent call last): File "/opt/mailman/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", li ne 353, in <module> main() File "/opt/mailman/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", li ne 335, in main json_out['return_val'] = hook(**hook_input['kwargs']) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/mailman/venv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", li ne 118, in get_requires_for_build_wheel return hook(config_settings) ^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 331, in g et_requires_for_build_wheel return self._get_build_requires(config_settings, requirements=[]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 301, in _ get_build_requires self.run_setup() File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in r un_setup exec(code, locals()) File "<string>", line 5, in <module> File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 115, in set up return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 148, in setup _setup_distribution = dist = klass(attrs) ^^^^^^^^^^^^ File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 321, in __init_ _ _Distribution.__init__(self, dist_attrs) File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 309, in __init__ self.finalize_options() File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 784, in finaliz e_options ep(self) File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 804, in _finali ze_setup_keywords ep.load()(self, ep.name, value) File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 229, in cff i_modules add_cffi_module(dist, cffi_module) File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 50, in add_ cffi_module execfile(build_file_name, mod_vars) File "/tmp/pip-build-env-uf_5f2aq/overlay/lib/python3.12/site-packages/cffi/setuptools_ext.py", line 26, in exec file exec(code, glob, glob) File "src/cmarkgfm/build_cmark.py", line 21, in <module> with open(CMARK_DEF_H_PATH, encoding='utf-8') as fh: ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-y364_cvm/cmarkgfm_9fcba25730114ac4a08d1e 7733112a45/src/cmarkgfm/cmark.cffi.h' [end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.

On 10/20/25 10:32, Dennis Putnam via Mailman-users wrote:
I'm trying to install the web UI for mailman3. I am getting the following failure. Can someone help? TIA.
(venv) mailman :~$ pip install mailman-web mailman-hyperkitty ... FileNotFoundError: [Errno 2] No such file or directory: '/tmp/pip-install-y364_cvm/cmarkgfm_9fcba25730114ac4a08d1e 7733112a45/src/cmarkgfm/cmark.cffi.h' [end of output]
note: This error originates from a subprocess, and is likely not a problem with pip. error: subprocess-exited-with-error
× Getting requirements to build wheel did not run successfully. │ exit code: 1 ╰─> See above for output.
note: This error originates from a subprocess, and is likely not a problem with pip.
I think I've seen a similar error, but I don't recall what I did to work around it. In this case cmarkgfm is a dependency of readme_renderer which in turn is a dependency of postorius. In your venv try
pip install cmarkgfm
first and then
pip install mailman-web mailman-hyperkitty
That may avoid this.
-- Mark Sapiro <mark@msapiro.net> The highway is for gamblers, San Francisco Bay Area, California better use your sense - B. Dylan
participants (2)
-
Dennis Putnam
-
Mark Sapiro