“AttributeError: ‘str’ object has no attribute ‘partition'”(Mailman2.1 + Python 2.4)

スポンサーリンク

 

mailmanをインストールする上での条件は、以下の通り。
——————

Mailman 2.1 installation requirements

As of this writing, Mailman 2.1.9 is not compatible with Python 2.1 or Python 2.2 and Mailman can no longer be validated against them. Also, the new Sibling Lists feature in Mailman 2.1.10 uses Python sets and thus is not compatible with Python 2.3 or older. It is highly recommended that you upgrade to the latest patch release of one of the following:

For now, we recommend using Python 2.5.2.

———–

って事は、Python2.4が入っていれば条件は満たしているはず。がしかし、Mailman2.1.14+j3を入れたら動かなかった。

参考にしたページはこちら:http://centossrv.com/postfix-mailman.shtml

具体的に言うと、Webから新規MLを追加した後、追加完了の旨管理者にメールが送信されるが、メール送信も/var/log/maillogへの出力も全く無かった。

/usr/local/mailman/logs/errorには以下のログを確認。

AttributeError: 'str' object has no attribute 'partition'

どうやら、Pythong2.5以降に利用されている「partition」とかいうmethodがある。
それがPythong2.4にはなく、Mailman2.1.14+j3はこの「partition」というmethodを必要としているため、現行のPython2.4では利用できないということ。

調べてみたら/usr/local/mailman/pythonlib/email/message.pyがその「partition」methodを使っている

なので、/usr/lib/pythong2.4/email/Message.pyを変わりに置いてやった。
# いやいやPythonのバージョン上げればいいじゃん。 ごもっともです。

# service mailman stop
# cp -p /usr/local/mailman/pythonlib/email/message.py /usr/local/mailman/pythonlib/email/message.py.ORG
# cp -p /usr/lib/python2.4/email/Message.py /usr/local/mailman/pythonlib/email/message.py
# /usr/local/mailman/bin/check_perms -f
# service mailman start

これで問題なく動いているようだが保障は出来かねる。

 

probably no “partition” method in python version < 2.5.

So, I have replaced the “message.py” in /usr/local/mailman/python/email/ with the one which is /usr/lib/python2.4/email/Message.py.
It’s working fine for now.

コメント

タイトルとURLをコピーしました