No module named 'bench' après mise à jour vers ubuntu 25.04

Bonjour,
Suite à une mise à jour du serveur ubuntu hébergeant Dokos vers 25.04, le site est passé en erreur “Sorry!, We will back soon”.
J’ai donc tenté une maj via bench update --restart-supervisor qui n’aboutit pas avec le message d’erreur suivant :
Traceback (most recent call last):
File « /usr/local/bin/bench », line 5, in
from bench.cli import cli
ModuleNotFoundError: No module named ‹ bench ›

J’ai checké pas de choses via des réponses sur les forums frappe sans succès, et j’ai pourtant les dernières version debian des paquets utiles (python, pip, node etc…)

Est-ce que quelqu’un est déjà tombé sur ce problème suite à une upgrade d’ubuntu ?

Par avance merci pour vos réponses !

Bonjour @francois753,

Je n’ai pas rencontré cette erreur, peut-être qu’il faut “tout simplement” réinstaller l’outil « bench/docli », je t’invite à lire la partie de la documentation sur l’installation de bench (docli) :

Aussi, peut-être faut-il installer docli pour l’utilisateur root à nouveau.
Corentin

Bonjour @corentin,

Merci de ta réponse, j’ai donc refait la procédure d’installation par dessus, bien sur il m’indique que certaines choses existaient déjà. Mais après avoir tout refait, j’ai toujours le site offline et le message suivant lorsque je veux faire un bench update --restart-supervisor :

/home/dokos/dokos-bench/env/bin/python: Error while finding module specification for frappe.utils.bench_helper › (ModuleNotFoundError: No module named ‹ frappe ›)

Par avance merci pour ton aide…

François

Hmm effectivement c’est pas commun comme erreur.

Il faut probablement réinstaller les différents modules Python (même si c’est étrange qu’ils aient disparu) :

bench setup requirements

Oui vraiment bizarre suite à une upgrade OS qui s’est par ailleurs très bien déroulée…

Voici le message d’erreur suite à la commande bench setup requirements

$ /home/dokos/dokos-bench/env/bin/python -m pip install --quiet --upgrade pip
/home/dokos/dokos-bench/env/bin/python: No module named pip

J’ai donc tenté de re-install python3-pip avec apt, mais il est bien présent :
python3-pip is already the newest version (25.1.1+dfsg-1ubuntu2).

Au cas où, voici la suite du message d’erreur suite à “No module named pip”

Par avance merci !

ERROR:
subprocess.CalledProcessError: Command ‹ /home/dokos/dokos-bench/env/bin/python -m pip install --quiet --upgrade pip › returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File « /home/dokos/.local/bin/bench », line 8, in
sys.exit(cli())
~~~^^
File « /usr/local/lib/python3.13/dist-packages/bench/cli.py », line 132, in cli
bench_command()
~~~~~~~~~~~~~^^
File « /usr/local/lib/python3.13/dist-packages/bench/commands/setup.py », line 229, in setup_requirements
bench.setup.requirements(apps=apps)
~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^
File « /usr/local/lib/python3.13/dist-packages/bench/utils/render.py », line 109, in wrapper_fn
return fn(*args, **kwargs)
File « /usr/local/lib/python3.13/dist-packages/bench/bench.py », line 454, in requirements
self.pip()
~~~~~~~~^^
File « /usr/local/lib/python3.13/dist-packages/bench/utils/render.py », line 130, in wrapper_fn
return fn(*args, **kwargs)
File « /usr/local/lib/python3.13/dist-packages/bench/bench.py », line 395, in pip
return self.run(
~~~~~~~~^
f"{self.bench.python} -m pip install {quiet_flag} --upgrade pip", cwd=self.bench.name
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
)
^
File « /usr/local/lib/python3.13/dist-packages/bench/bench.py », line 48, in run
return exec_cmd(cmd, cwd=cwd or self.cwd, _raise=_raise)
File « /usr/local/lib/python3.13/dist-packages/bench/utils/init.py », line 178, in exec_cmd
raise CommandFailedError from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError

Hm, peut-être qu’il sera plus simple de recréer un bench à partir de zéro puis déplacer le site existant dedans une fois créé (en déplaçant précautionneusement le dossier du site dans sites, puis en lançant une migration) ?

Sinon on peut aussi essayer de recréer l’environnement Python avec bench setup env --python python3.13 j’imagine. J’imagine que les exécutables Python de l’environnement Python du bench ont été supprimés d’une manière ou d’une autre lors de la MàJ de l’OS.

Merci des conseils, bon ça bloque toujours sur bench avec le module pip :
bench setup env --python python3.13
Setting Up Environment
$ /home/dokos/dokos-bench/env/bin/python -m pip install --quiet --upgrade pip
/home/dokos/dokos-bench/env/bin/python: No module named pip

Je vais recréer un bench en partant de zéro avec les apps et après avoir copié le sous dossier dans sites, pour la migration je fais juste
bench migrate-env python3.13 ?

On pourrait lancer ça dans le bench cassé existant pour le corriger, peut-être que ça marchera d’ailleurs.


Dans le nouveau bench ça serait plutôt une migration du site qu’on ferait bench --site all migrate ou alors juste un bench update.

1 Like

J’étais justement la dessus. Ok super merci de ton aide, je teste tout ça !