How to make sphinx look for modules in virtualenv while building html?

前端 未结 3 1246
梦如初夏
梦如初夏 2021-01-30 10:42

I want to build html docs using a virtualenv instead of the native environment on my machine.

I\'ve entered the virtualenv but when I run make html I get e

3条回答
  •  忘掉有多难
    2021-01-30 11:19

    The problem here is that make html uses the sphinx-build command as a normal shell command, which explicitly specifies which Python interpreter to use in the first line of the file (ie. #!/usr/bin/python). If Python gets invoked in this way, it will not use your virtual environment.

    A quick and dirty way around this is by explicitly calling the sphinx-build Python script from an interpreter. In the Makefile, this can be achieved by changing SPHINXBUILD to the following:

    SPHINXBUILD   = python /sphinx-build
    

    If you do not want to modify your Makefile you can also pass this parameter from the command line, as follows:

    make html SPHINXBUILD='python /sphinx-build'
    

    Now if you execute make build from within your VirtualEnv environment, it should use the Python interpreter from within your environment and you should see Sphinx finding all the goodies it requires.

    I am well aware that this is not a neat solution, as a Makefile like this should not assume any specific location for the sphinx-build file, so any suggestions for a more suitable solution are warmly welcomed.

提交回复
热议问题