Le problème ici est que make html
utilise le sphinx-build
comme une commande shell normale, qui spécifie explicitement l'interpréteur Python à utiliser dans la première ligne du fichier (c.-à-d. #!/usr/bin/python
). Si Python est invoqué de cette manière, il n'utilisera pas votre environnement virtuel.
Une façon rapide et sale de contourner ce problème est d'appeler explicitement la fonction sphinx-build
Python script à partir d'un interpréteur. Dans le Makefile
cela peut être réalisé en modifiant SPHINXBUILD
à ce qui suit :
SPHINXBUILD = python <absolute_path_to_sphinx-build-file>/sphinx-build
Si vous ne voulez pas modifier votre Makefile
vous pouvez également passer ce paramètre depuis la ligne de commande, comme suit :
make html SPHINXBUILD='python <path_to_sphinx>/sphinx-build'
Maintenant, si vous exécutez make build
à partir de votre environnement VirtualEnv, il devrait utiliser l'interpréteur Python à partir de votre environnement et vous devriez voir Sphinx trouver tous les éléments dont il a besoin.
Je suis bien conscient qu'il ne s'agit pas d'une solution parfaite, puisqu'une Makefile
comme celui-ci ne doit pas supposer un emplacement spécifique pour le sphinx-build
Toute suggestion concernant une solution plus appropriée est donc la bienvenue.