A short link to this page is https://wiki.list.org/x/4030629

Clear message

5.8. What version of Python is required for Mailman 2.1.5 and 2.1.9 and 2.1.10 and 2.1.12 and ...?

This is the other side of the same issue discussed in Mailman FAQ entry 4.42 at <4.42 I installed or upgraded Mailman, but now I get the error "NameError global name 'True' is not defined". What can I do?>.

You may see a sequence of error messages which looks something like this:

 Dec 13 00:31:03 2004 (24653) Traceback (most recent call last):
  File "/Users/mailman/Mailman/Queue/Runner.py", line 111, in _oneloop
    self._onefile(msg, msgdata)
  File "/Users/mailman/Mailman/Queue/Runner.py", line 167, in _onefile
    keepqueued = self._dispose(mlist, msg, msgdata)
  File "/Users/mailman/Mailman/Queue/IncomingRunner.py", line 130, in _dispose
    more = self._dopipeline(mlist, msg, msgdata, pipeline)
  File "/Users/mailman/Mailman/Queue/IncomingRunner.py", line 153, in _dopipeline
    sys.modules[modname].process(mlist, msg, msgdata)
  File "/Users/mailman/Mailman/Handlers/Moderate.py", line 67, in process
    ModeratedMemberPost)
  File "/Users/mailman/Mailman/Handlers/Hold.py", line 214, in hold_for_approval
    id = mlist.HoldMessage(msg, reason, msgdata)
  File "/Users/mailman/Mailman/ListAdmin.py", line 180, in HoldMessage
    id = self.__nextid()
  File "/Users/mailman/Mailman/ListAdmin.py", line 113, in __nextid
    while True:
 NameError: global name 'True' is not defined

See the thread including the message by Barry Warsaw at <http://mail.python.org/pipermail/mailman-developers/2004-May/016889.html>.

In short, Mailman 2.1.5 needs recent versions of Python to support it, specifically Python 2.3. If you're using RedHat or Debian-Stable versions of Linux, or Mac OS X 10.2 "Jaguar", you may need to install Python 2.3 from source.

For further details, see <http://mail.python.org/pipermail/mailman-developers/2004-May/016903.html>, <http://mail.python.org/pipermail/mailman-developers/2004-May/016892.html>, <http://mail.python.org/pipermail/mailman-developers/2004-May/016893.html>, and the message by Jim Tittsler at <http://mail.python.org/pipermail/mailman-users/2004-December/041324.html>.

For more on the requirements of Mailman 2.1.5, see <What MTA features are required for use with Mailman 2.1.5?>.

Note that this is considered to be a bug in version 2.1.5. The version of Mailman 2.1.x currently in CVS has been fixed so that it should work with older versions of Python (including as old as Python 2.1), and this will be incorporated into the 2.1.6 release version. However, Python 2.3 (or later) is still strongly recommended.

Update: Note that Mailman 2.1.9 was released with source code changes that also require Python 2.3 (or later). In all likelihood, this will be fixed (again), but in the meanwhile your options are to either fix the source code yourself (see <http://mail.python.org/pipermail/mailman-users/2006-September/053296.html>, or to upgrade your version of Python.

Note that the Sibling Lists feature introduced in Mailman 2.1.10 requires Python 2.4 or later.

Also note that Mailman versions earlier than 2.1.9 are incompatible with Python 2.5 but there are no problems with Mailman 2.1.10 and later and Python 2.5. At this point in time, we recommend you use the latest minor version from the Python 2.4.x tree for Mailman 2.1.9 and the latest minor version from the Python 2.5.x tree for Mailman 2.1.10 and later.

Update - March 2009: Mailman 2.1.12 has been released and requires Python 2.4.x or later. It is the first Mailman release compatible with Python 2.6. An incompatibility between Mailman 2.1.12 and Python 2.4.4 through 2.4.6 has been observed. Mailman 2.1.12 will work with Python 2.4.[123], but we recommend Python 2.5.x or 2.6.x for Mailman 2.1.12. There is also a patch to the Python 2.4.[456] email/Charset.py module at <http://launchpadlibrarian.net/23670138/Charset.py.patch> that will enable Mailman to work with those versions.

September 2009: There may also be an incompatibility between Mailman 2.1.12 and Python 2.5 (not 2.5.x). See the thread 'What causes "decoding Unicode is not supported"?' starting at <http://mail.python.org/pipermail/mailman-users/2009-September/066979.html>

Another Python 2.6.x incompatibility has been discovered that wasn't addressed in Mailman 2.1.12. This affects holding messages for approval if HOLD_MESSAGES_AS_PICKLES = No and 'Preserve messages for the site administrator' from the admindb interface. See <http://mail.python.org/pipermail/mailman-users/2009-September/067223.html> for a patch to fix this.

Update - Dec 2017: A change in the archiver in Mailman 2.1.22 requires Python 2.7. The issue is a "got an unexpected keyword argument 'flags'" exception is thrown when trying to archive a message with no valid Date: header and no valid X-List-Received-Date: header. This will probably only occur when running bin/arch on a mbox file with such a message.

Update - Mar 2018: The Python 2.7 dependency introduced in the archiver in 2.1.22 was removed in 2.1.26, but another Python 2.7 dependency in the subscribe CGI was introduced in 2.1.26. This will be removed in 2.1.27.

Yet another Python 2.7 dependency was introduced in the ToDigests handler in 2.1.24. This will be removed in 2.1.27

Update - June 2018: Beginning with Mailman 2.1.27, Python 2.6 is the minimum version supported and Python 2.7 is strongly recommended.