名为的 Folding@Home 控制程序FAHControl
(从此处下载)将无法启动,并出现以下 Python 错误:
$ FAHControl
Traceback (most recent call last):
File "/usr/bin/FAHControl", line 25, in <module>
from fah import FAHControl, load_fahcontrol_db
File "/usr/lib/python3/dist-packages/fah/__init__.py", line 25, in <module>
from . import util
File "/usr/lib/python3/dist-packages/fah/util/__init__.py", line 24, in <module>
from .OrderedDict import *
File "/usr/lib/python3/dist-packages/fah/util/OrderedDict.py", line 23, in <module>
from collections import MutableMapping as DictMixin
ImportError: cannot import name 'MutableMapping' from 'collections' (/usr/lib/python3.10/collections/__init__.py)
我使用的是 Linux Mint 21.3 Cinnamon(基于 Ubuntu 22.04)。有解决办法吗?
发生了什么以及何时
3.10+ Python 版本似乎有变化。但解决方案其实很简单,如果你不喜欢历史课,请跳到下面的解决方案。
正如 Python 手册中所述:
collections.abc
或容器的抽象基类是 3.3 版本中的新模块,以前该模块是该模块的一部分collections
。在同一手册的 3.9 版本中,我找到了有关它何时被弃用以及何时被删除以便程序员必须调整其代码的信息:简单的解决方案
只需使用您最喜欢的文本编辑器以 root 身份编辑以下文件:
更改第 23 行:
由此
对此
保存并重试。
FAHControl
现在在我这边启动。该解决方案已经过全面测试并且可以运行(至少在我的系统上)。FAHControl 和 FAHClient 的一些屏幕截图(http://127.0.0.1:7396/):
FAHControl(点击放大):
FAHClient(点击放大):