O programa de controle Folding@Home chamado FAHControl
( baixado aqui ) não será iniciado com este erro do 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)
Estou no Linux Mint 21.3 Cinnamon (que é baseado no Ubuntu 22.04). Há uma solução?
O que aconteceu e quando
Parece haver uma mudança na versão 3.10+ do Python. Mas a solução é realmente muito simples, se você não se importa com a aula de história , pule para a solução abaixo.
Conforme declarado no manual do Python :
collections.abc
ou Abstract Base Classes for Containers são novos na versão 3.3 e anteriormente, este módulo fazia parte docollections
módulo. Na versão 3.9 do mesmo manual, encontrei informações sobre quando ele foi descontinuado e quando foi removido para que os programadores precisassem ajustar seu código:Solução simples
Basta editar o seguinte arquivo como root com seu editor de texto favorito:
Mude a linha 23:
disto
para isso
Salve e tente novamente.
FAHControl
agora lança do meu lado. A solução foi totalmente testada e funcionando (pelo menos no meu sistema).Algumas capturas de tela do funcionamento do FAHControl e do FAHClient ( http://127.0.0.1:7396/ ):
FAHControl (clique para ampliar):
FAHClient (clique para ampliar):