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.