Faire tourner Mypaint-2.0 sur debian bullseye

Bonjour à tous.

Les soucis d’installation de Mypaint continuent.
Après la non compatibilité entre mypaint et Gimp-2.10 l’an dernier (résolu en installant soit Gimp-2.8 soit en installant Mypaint ou Gimp en Flatpak), aujourd’hui, il n’y a plus de problème de dépendances, mais en testing (Bullseye), la version Mypaint-2.0 ne se lance pas.
Si on lance Mypaint en console, on en apprend un peu plus :

$ mypaint 
INFO: mypaint: Installation layout: conventional POSIX-like structure with prefix '/usr' 
Traceback (most recent call last): 
File "/usr/bin/mypaint", line 294, in <module> 
= get_paths() 
File "/usr/bin/mypaint", line 241, in get_paths 
from lib import fileutils 
File "/usr/lib/mypaint/lib/fileutils.py", line 26, in <module> 
import lib.helpers 
File "/usr/lib/mypaint/lib/helpers.py", line 26, in <module> 
from . import mypaintlib 
File "/usr/lib/mypaint/lib/mypaintlib.py", line 13, in <module>  
from . import _mypaintlib 
ImportError: cannot import name '_mypaintlib' from 'lib' (/usr/lib/mypaint/lib/__init__.py) 

en ouvrant ce fichier “/usr/lib/mypaint/lib/mypaint.py”, on voit qu’il cherche à charger le fichier “_mypaintlib” dans ce même répertoire.

La solution rapide que j’ai mis en place, consiste :

  • soit à copier le fichier “_mypaintlib.cpython-38-x86_64-linux-gnu.so” et à le renommer “_mypaintlib.so”
  • soit à créer dans ce même répertoire (/usr/lib/mypaint/lib/" pour ceux qui suivent :wink: ) un lien symbolique nommé “_mypaintlib.so” , pointant vers le fichier “_mypaintlib.cpython-38-x86_64-linux-gnu.so”.

Nouvel essai de lancer Mypaint :

mypaint 
INFO: mypaint: Installation layout: conventional POSIX-like structure with prefix '/usr' 
INFO: gui.main: No locale setting found, using system locale 
INFO: lib.i18n: POSIX: LANG='fr_FR.utf8' `
INFO: lib.i18n: POSIX: LANGUAGE=None 
Traceback (most recent call last): 
File "/usr/bin/mypaint", line 315, in <module> 
version=version, 
File "/usr/lib/mypaint/gui/main.py", line 225, in main 
run() 
File "/usr/lib/mypaint/gui/main.py", line 186, in run 
from gui import application 
File "/usr/lib/mypaint/gui/application.py", line 97, in <module> 
import gui.profiling 
File "/usr/lib/mypaint/gui/profiling.py", line 22, in <module> 
from distutils.spawn import find_executable 
ModuleNotFoundError: No module named 'distutils.spawn' 

Bon on avance , mais tout n’est pas réglé … :thinking:
Mais là, j’ai commencé à sécher :fearful:

La solution à finalement été trouvée sur Github :
https://github.com/platformio/platformio-vscode-ide/issues/907

Il suffit donc d’installer “python3-distutils

Donc après un :

# apt-get install python3-distutils

Il n’y a plus de problème, on peut alors pleinement bénéficier de Mypaint-2.0 sur sa debian préférée. :money_mouth_face:

1 J'aime

Mise à jour pour la version Mypaint-2.0.1.

Sur la version 2.0.1 de Mypaint l’astuce notée ci dessus ne fonctionne plus, mais tout n’est pas perdu.
Après l’installation de Mypaint, l’application ne se lance pas, il faut donc :

1- procéder au renommage du fichier de config comme noté dans mon message initial :

2 - Puis on a alors un nouveau soucis :

$ mypaint
INFO: mypaint: Installation layout: conventional POSIX-like structure with prefix '/usr'
Traceback (most recent call last):
  File "/usr/bin/mypaint", line 293, in <module>
= get_paths()
  File "/usr/bin/mypaint", line 241, in get_paths
from lib import fileutils
  File "/usr/lib/mypaint/lib/fileutils.py", line 25, in <module>
import lib.helpers
  File "/usr/lib/mypaint/lib/helpers.py", line 25, in <module>
from . import mypaintlib
  File "/usr/lib/mypaint/lib/mypaintlib.py", line 13, in <module>
from . import _mypaintlib
ImportError: /usr/lib/mypaint/lib/_mypaintlib.so: undefined symbol: PyCMethod_New

Là encore, il nous manque une librairie, ou une mise à jour.
En fait, Mypaint en version 2.0.1 nécessite Pyton-3.9 (cf : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975582) :

La version 3.9.0-3 de python n’est disponible que dans cid, il faut donc faire du pinning avec la source.liste et installer la dernière version de python.

On peut ensuite lancer Mypaint.