EasyABC stopped working

I’ve been using the music notation program EasyABC for a long time, but today it won’t start. I have not made any changes recently except agreeing to the routine Manjaro system updates.
When I click on the EasyABC menu icon nothing happens, and when I do the alternative of typing ‘easyabc’ in a terminal, I get the following:

[ray@ray-dell ~]$ easyabc
13:58:38: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8).
Traceback (most recent call last):
  File "/opt/easyabc/easy_abc.py", line 109, in <module>
    from xml2abc_interface import xml_to_abc, abc_to_xml
  File "/opt/easyabc/xml2abc_interface.py", line 5, in <module>
    import abc2xml
  File "/opt/easyabc/abc2xml.py", line 17, in <module>
    from pyparsing import Word, OneOrMore, Optional, Literal, NotAny, MatchFirst
  File "/opt/easyabc/pyparsing.py", line 943, in <module>
    collections.MutableMapping.register(ParseResults)
AttributeError: module 'collections' has no attribute 'MutableMapping'
[ray@ray-dell ~]$ 

I’m a musician, not a computer techie, and have no idea what those messages mean, but really need to get EasyABC working again.
Any help greatly appreciated.

try these commands:

yay -S $(pacman -Qoq /usr/lib/python3.9) --answerclean All
yay -S python-babelfish python-collections-extended-git

It is an AUR package. Fully update your system, if you have not already. Then rebuild that software against python 3.10.
From the Stable Update announcement of 1/2/2022 :slight_smile:

You may need to rebuild any AUR packages that install files to site-packages …
pamac build easyabc
1 Like

Thanks jrichard326.
Pamac says I’m fully up to date as of today.
Did the ‘pamac build easyabc’ command but no change - EaasyABC still won’t start and I get the same Attribute error.

Thanks archbtw. Tried these but get the message:

python: can't open file '/home/ray/.cache/yay/python-collections-extended-git/src/python-collections-extended-git/setup.py': [Errno 2] No such file or directory
==> ERROR: A failure occurred in package().
    Aborting...
 -> error making: python-collections-extended-git

So the problem that has stopped EasyABC working seems to be in the latest system updates, which include the new Python versions??
I like the idea of keeping up with system updates, but it’s frustrating when they stop your workflow by buggering up applications that you depend on!
Any ideas on how to get EasyABC working again?

Do you really need that package? On the AUR it has never been updated since its upload on 2016-02-11 and no other pkgbuilds depends on that


Edit:

I’ve builded easyabc and it working, remove the packages and build again

Thanks Lolix. I’ve no idea about that python package - I just followed the suggestions and that’s what I got.
I’ve now removed easyabc using Pamac, and repeated the ‘pamac build easyabc’ command, saying yes to its offer of a clean build.
Still no joy … nothing happens on clicking the icon, and if I type ‘easyabc’ in a command line I get:

[ray@ray-dell ~]$ easyabc
14:20:39: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8).
Traceback (most recent call last):
  File "/opt/easyabc/easy_abc.py", line 109, in <module>
    from xml2abc_interface import xml_to_abc, abc_to_xml
  File "/opt/easyabc/xml2abc_interface.py", line 5, in <module>
    import abc2xml
  File "/opt/easyabc/abc2xml.py", line 17, in <module>
    from pyparsing import Word, OneOrMore, Optional, Literal, NotAny, MatchFirst
  File "/opt/easyabc/pyparsing.py", line 943, in <module>
    collections.MutableMapping.register(ParseResults)
AttributeError: module 'collections' has no attribute 'MutableMapping'
[ray@ray-dell ~]$ 

Is there a separate way to remove the offending python bit? Or some other way to overcome this problem?

I’ve asked about this on the EasyABC discussion forum but have received no suggestions - they see it as a Manjaro issue.
Is there a more thorough way if expunging easyabc and its libraries, and then performing a completely clean re-installation? Using pamac doesn’t seem to do it.
I manage a huge online library of abc music scores and I really need to get EasyABC going again. There is no alternative Linux abc package that does what I need, and I would HATE to have to go back to Windows!!

I don’t use pamac so I don’t know how it behave, use it to remove the packages, then I’ll show how to build the AUR packages

Install git if you don’t have it

sudo pacman -Syu git base-devel --needed

git clone  https://aur.archlinux.org/abcm2ps.git
cd abcm2ps
makepkg -sicC
cd ..
git clone https://aur.archlinux.org/abcmidi.git
cd abcmidi
makepkg -sicC
cd ..
git clone https://aur.archlinux.org/easyabc.git
cd easyabc
makepkg -sicC
1 Like

someone opened a similar issue on easyabc’s github page :point_down:

the aur easyabc package was last updated on 2021-02-23 and that’s the problem

wow! some progress

Launched easyabc after posting and no longer start with the same error as you

Thanks Lolix. Git already installed. Tried the other bit and after a great deal of terminal stuff I got the following:

Cloning into 'easyabc'...
fatal: https://aur.archlinux.org/packages/easyabc/info/refs not valid: could not determine hash algorithm; is this a git repository?
bash: cd: easyabc: No such file or directory
==> ERROR: PKGBUILD does not exist.

So no joy there.

And thanks ishaanbhimwal … that solution looks promising, but I being very non-techie I don’t know how to go about what jstorry has written. I’ll contact him for clear simple instructions, unless you can list the steps?

I had writed the wrong link, it correct now

git clone git clone https://aur.archlinux.org/easyabc.git

How did you do that?

Although the music notation application Easyabc is poorly maintained for Linux, I believe other users have managed to install it since the Jan 2 Manjaro update.
I had it running OK before that Manjaro update but then it stopped working.
I removed it with “sudo pacman -Rs easyabc” and then tried to re-install it with “yay -S easyabc” (I’m out of my depth with these things but just follow suggestions!).
The terminal looked as it was installing it but when I try to start the application I get:

[ray@ray-dell ~]$ easyabc
12:23:50: Warning: Mismatch between the program and library build versions detected.
The library used 3.0 (wchar_t,compiler with C++ ABI 1014,wx containers,compatible with 2.8),
and wxPython used 3.0 (wchar_t,compiler with C++ ABI 1016,wx containers,compatible with 2.8).
Traceback (most recent call last):
  File "/opt/easyabc/easy_abc.py", line 109, in <module>
    from xml2abc_interface import xml_to_abc, abc_to_xml
  File "/opt/easyabc/xml2abc_interface.py", line 5, in <module>
    import abc2xml
  File "/opt/easyabc/abc2xml.py", line 17, in <module>
    from pyparsing import Word, OneOrMore, Optional, Literal, NotAny, MatchFirst
  File "/opt/easyabc/pyparsing.py", line 943, in <module>
    collections.MutableMapping.register(ParseResults)
AttributeError: module 'collections' has no attribute 'MutableMapping'
[ray@ray-dell ~]$ 

Any suggestions for sorting this out so I can use Easyabc again? Thanks.

It must be adapted to Python 3.10. The collections module does not provide MutableMappings anymore.

It was deprecated a while ago, the developers of EasyABC must change their code.

Since the latest Manjaro update I have Python 3.10.1 on the system.
I’ve been trying to get the EasyABC music notation program going again (it stopped working with the January Manjao update). Its maintainer says I need python3-pyparsing, but when I try install it I get:

[ray@ray-dell ~]$ pamac install python3-pyparsing
Error: target not found: python3-pyparsing
[ray@ray-dell ~]$ 

What to do? Thanks

Hi @raysa,

I believe it might be this one in the AUR:

https://aur.archlinux.org/packages/pypy3-pyparsing/

It’s installable using:

pamac build pypy3-pyparsing

Hope this helps!