python/python-docs-fr

Problème de Make

th71 opened this issue · 4 comments

th71 commented

Bonjour,
je ne sais pas si c'est un problème sur ma machine (dsl de publier ici si c'est pas le bon lieu).

La semaine dernière tout marchait bien.
Cette semaine make retourne

(venv) [thierry]>~/D/python-docs-fr:library-html-parser-po$ make
[...]
Sphinx v4.5.0 en cours d'exécution
[...]
Document en préparation... fait
Writing glossary.jsonbrary/syslog .. library/urllib.request                                                                                 

Une exception a été levée :
  File "/home/thierry/Dépôts/python-docs-fr/venv/lib/python3.7/site-packages/sphinx/environment/__init__.py", line 511, in get_doctree
FileNotFoundError: [Errno 2] Aucun fichier ou dossier de ce type: '/home/thierry/Dépôts/python-docs-fr/venv/cpython/Doc/build/doctrees/library/tk.doctree'
Le traceback complet a été sauvé dans /tmp/sphinx-err-hifln4gu.log, au cas où vous souhaiteriez signaler le problème aux développeurs.
Merci de rapporter ceci s'il s'agit d'une erreur utilisateur, afin d'améliorer le message d'erreur à l'avenir.
Un rapport d'erreur peut être déposé dans le système de tickets à <https://github.com/sphinx-doc/sphinx/issues>. Merci !
make[1]: *** [Makefile:51: build] Error 2
make[1] : on quitte le répertoire « /home/thierry/Dépôts/python-docs-fr/venv/cpython/Doc »
make: *** [Makefile:92: all] Error 2

Une idée?

À vue de nez, je commencerais par me demander si le build est fait à partir de rien. Essaie make clean avant make.

Si ça ne marche pas, peux-tu copier ici le traceback qui est mis dans /tmp/sphinx-err-machin.log ?

Salut, ton hypothèse était correcte.
Si je comprends bien le Python qui était appelé par le make était celui de mon système et non celui associé au VENV.
Tu peux m'expliquer mieux, ou me dire si je me trompe (histoire de comprendre un peu et gagner en autonomie) ?

La compilation Sphinx est incrémentale : entre deux make, Sphinx conserve dans le dossier build des informations sur les fichiers, de manière à pouvoir s'en resservir pour les fichiers qui n'ont pas changé et ne faire une lecture complète que des fichiers qui ont changé. On ne sait jamais trop ce qui se peut se passer dans ce genre de situation. Il se peut qu'une compilation précédente se soit arrêtée de façon anormale et ait laissé un état pas compréhensible pour la suivante, ou bien que la première compilation ait été faite avec une version différente de Sphinx et que la différence n'ait pas été détectée, que ç'ait été un Sphinx provenant du système mais avec la même version que celle du venv et que donc les résultats de la compilation précédente n'aient pas été invalidés alors qu'une dépendance était à une version différente, etc. etc. etc. C'est pour moi un réflexe général (ici comme sur les autres projets sur lesquels je travaille) : au moindre problème de build, je commence par repartir de zéro. C'est souvent une stratégie payante. D'un côté, c'est dommage car on laisse des bugs de compilation incrémentale, mais d'un autre côté, identifier et résoudre ces bugs est souvent difficile.

Super merci.
Je clos.