Проблема здесь в том, что make html
использует команду sphinx-build
как обычную команду оболочки, которая явно указывает, какой интерпретатор Python использовать в первой строке файла (т. Е. #!/usr/bin/python
).Если Python вызывается таким образом, он не будет использовать вашу виртуальную среду.
Быстрый и грязный способ обойти это путем явного вызова скрипта sphinx-build
Python из интерпретатора.В Makefile
это может быть достигнуто путем изменения SPHINXBUILD
на следующее:
SPHINXBUILD = python <absolute_path_to_sphinx-build-file>/sphinx-build
Если вы не хотите изменять Makefile
, вы также можете передать этот параметр из командной строки,следующим образом:
make html SPHINXBUILD='python <path_to_sphinx>/sphinx-build'
Теперь, если вы выполните make build
из вашей среды VirtualEnv, он должен использовать интерпретатор Python из вашей среды, и вы увидите, что Sphinx найдет все нужные ему вкусности.
Мне хорошо известно, что это не изящное решение, так как Makefile
, подобный этому, не должен предполагать какое-либо конкретное местоположение для файла sphinx-build
, поэтому любые предложения по более подходящему решению горячо приветствуются.