mailman 升级到 mailman3 后,无法使用 CLI 实用程序:ImportError: 没有名为 Mailman 的模块

mailman 升级到 mailman3 后,无法使用 CLI 实用程序:ImportError: 没有名为 Mailman 的模块

在阅读文档的过程中,我走上了一条误入歧途的道路,尤其是那些材料我在这里找到- 出于纯粹的沮丧,我最终找到了“官方维基百科”,就在这里,它将我指向“缺失的”命令行界面 (CLI) 实用程序。在我的安装中,它们位于 /lib/mailman/bin。但是,它们不起作用!

例如,以用户 mailman 身份运行:

$ add_members -h
Traceback (most recent call last):
  File "/lib/mailman/bin/add_members", line 89, in <module>
    from Mailman import i18n
ImportError: No module named Mailman

我肯定有人会问,所以:

Fedora Server 32 运行 mailman3-3.2.2-1.fc32.noarch...以及大约 153 个 Python3 包... python3 --version 命令显示它是 3.8.5。

顺便说一句,我使用 DNF 安装了 Mailman3。我不知道我是否应该安装更多东西,但通常如果有未解决的依赖关系,DNF 会报错,但它没有报错。

...我真的需要让这些工作起来,而且无论如何我都不是 Python 程序员。我现在也不想花时间去学习它...为什么要提这个?继续阅读:

作为“面包屑”(就像汉塞尔和格莱特民间故事中那样),对于那些可能稍后跟进的人来说,从前面引用的网站的文档来看,显然,再次,根据该来源,您必须进入 shell Python,编写自己的Python函数,简而言之,成为 Python 和 Mailman 库专家,才能使用他们所谓的 CLI 界面。疯了!

如果要走这条路,你需要登录 mailman(以获取正确的用户上下文),然后:

$ PYTHONSTARTUP= mailman3 shell

然后你会得到一个 python 提示符 >>> 然后你必须做如下操作:

>>> from mailman.testing.documentation import cli
>>> command = cli('mailman.commands.cli_withlist.shell')
>>> command('mailman shell --details')

而且,从这里开始有很多可能,所有这些都需要大量的打字,而且Python比我现在知道的要多得多。这里有这方面的文档在这儿。...我真正想要做的是导入一个包含从以前版本保存的人员姓名和电子邮件地址的文件并将其添加到列表中,但在这种环境下执行此操作需要进行大量的输入。

令人高兴的是,一切都确实有效,从我并不完全了解的尝试中我能够得出最好的结论。

编写脚本来模拟旧实用程序应该“非常容易” mailman 2.x,所以也许您可以看到我在发现实用程序仍然存在之前是多么沮丧,它们就是不起作用!...我 100% 确定我可以学习 Python 和 mailman3 库并编写自己的库,但我没有时间这样做。...所以,我需要让这些其他实用程序工作起来。

答案1

我通过坚持不懈解决了这个问题。按照我在此处记录的内容,现在命令行工具可以正常工作,Mailman 也运行良好,尽管我还没有让 Web 界面运行起来。...第一个新列表已创建并正确发送邮件。

我认为也许我没有安装足够的软件,但不知道我可能错过了什么,因此我再次运行了 dnf,如下所示:

# dnf install mailman3*
Last metadata expiration check: 2:38:45 ago on Mon 31 Jan 2022 04:09:14 PM PST.
Package mailman-3:2.1.34-1.fc32.x86_64 is already installed.
Package mailman3-3.2.2-1.fc32.noarch is already installed.
Dependencies resolved.
================================================================================
 Package                      Arch       Version              Repository   Size
================================================================================
Installing:
 mailman3-fedmsg-plugin       noarch     0.5-14.fc32          fedora       21 k
Installing dependencies:
 fedmsg-base                  noarch     1.1.2-1.fc32         updates      22 k
 openpgm                      x86_64     5.2.122-22.fc32      fedora      189 k
 python3-Automat              noarch     20.2.0-1.fc32        fedora       65 k
 python3-arrow                noarch     0.14.6-3.fc32        fedora       82 k
 python3-constantly           noarch     15.1.0-9.fc32        fedora       20 k
 python3-daemon               noarch     2.2.3-8.fc32         fedora       38 k
 python3-docutils             noarch     0.15.2-4.fc32        fedora      1.5 M
 python3-fedmsg               noarch     1.1.2-1.fc32         updates     320 k
 python3-hamcrest             noarch     1.9.0-13.fc32        fedora       73 k
 python3-hyperlink            noarch     19.0.0-6.fc32        fedora       75 k
 python3-incremental          noarch     17.5.0-10.fc32       fedora       33 k
 python3-kitchen              noarch     1.2.6-5.fc32         fedora       88 k
 python3-lockfile             noarch     1:0.11.0-17.fc32     fedora       30 k
 python3-moksha-common        noarch     1.2.5-14.fc32        fedora       43 k
 python3-moksha-hub           noarch     1.5.17-6.fc32        fedora       76 k
 python3-psutil               x86_64     5.6.7-1.fc32         fedora      383 k
 python3-pyasn1-modules       noarch     0.4.8-1.fc32         fedora      211 k
 python3-stomper              noarch     0.4.3-6.fc32         fedora       49 k
 python3-twisted              x86_64     20.3.0-1.fc32        updates     6.0 M
 python3-txws                 noarch     0.9.1-20.fc32        updates      24 k
 python3-txzmq                noarch     0.8.0-13.fc32        fedora       47 k
 python3-zmq                  x86_64     18.1.0-3.fc32        fedora      412 k
 zeromq                       x86_64     4.3.3-1.fc32         updates     496 k
Installing weak dependencies:
 python3-service-identity     noarch     18.1.0-6.fc32        fedora       27 k

Transaction Summary
================================================================================
Install  25 Packages

Total download size: 10 M
Installed size: 49 M
Is this ok [y/N]:
...etc...

这样做的一个结果是禁用了mailman3,所以我重新启用了它并用 重新启动了它systemctl。它还清除了之前的列表(我可以创建但不能像以前一样填充列表),所以我必须创建一个名为mailmanfirst 的列表 - 我记得如果没有它,它就无法成功启动。但是随着新mailman电子邮件列表的创建,THENmailman3将启动,然后我创建了我的新邮件列表。

我没有想到它会重新安装Mailman3,我猜它确实重新安装是因为它将服务重置为禁用。......所以主列表可能被消灭了,因为我没有停止仍在运行的mailman3.server服务。

与之前的 2.x 不同Mailman,我必须手动将新列表别名添加到/etc/aliases,然后运行postalias并重新启动postfix才能使它们生效 - 这是一个相当烦人的倒退?!但是,嘿,它起作用了。

相关内容