Install & Compatibility
Where this runs
tested against v3.3.10 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.080s · 91MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 11.7s · import 0.078s · 90MB
96MB installed
● package 96MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
mailman
✓ import mailman
✗ from mailman import core
Top-level import is sufficient; direct submodule imports may break if internal structure changes.
IMailingList
✓ from mailman.interfaces import IMailingList
✗ from mailman.model import MailingList
IMailingList is the interface; model classes are internal and not part of the public API.
Initialize Mailman from config and access a mailing list.
import os
from mailman.config import config
# Initialize with a configuration file
config.load(os.environ.get('MAILMAN_CONFIG', '/etc/mailman.cfg'))
# Get a mailing list instance (example)
from mailman.interfaces import IMailingList
# Assuming a list exists
list_name = 'my-list'
mlist = config.db.list_store.get(list_name)
print(f'List: {mlist.fqdn_listname}')
mailman --version
Errors
Common errors & fixes
ImportError: No module named mailman
mailman is not installed or not in Python path.
ConfigurationError: No configuration file found.
config.load() called without a valid path or MAILMAN_CONFIG not set.
fixSet MAILMAN_CONFIG environment variable or pass path existing cfg file.
KeyError: 'my-list'
The list does not exist in the database.
fixCreate the list first via REST API or mailman.core.initialize.
Upgrade
Version history
3.3.10latest on PyPI · released Oct 2, 2024
Audit
Dependencies
No dependency data recorded yet.