Does sphinx run my code on executing 'make html'?

蹲街弑〆低调 提交于 2021-01-21 07:47:28

问题


I inherited a rather large codebase that I want to create HTML documentation for. Since it is written in Python I decided to use sphinx because the users of the code are accustomed to the design and functionality of the Python documention that's created with Sphinx. I used the command sphinx-apidoc to automatically create the rst-files. I imported the module path into sys.path so that Sphinx can find the code.

So far so good. However, when I try to create the HTML using the command make html, there are many tracebacks poping up and some of the examples in the codebase seem to get executed. What can be the reason for that and how can I prevent that from happening?


回答1:


When using autodoc, Sphinx imports the documented modules, so all module-level code is executed. This happens every time you do "make html". In that sense, Sphinx does "run" your code.

You may have to organize your code a bit differently to make the errors go away (move module-level code to functions). See this question for an example of what can happen.

This is my guess but it may not be the whole story. It's hard to say more without additional information.




回答2:


def main():

    print('hello world')

if __name__ == '__main__':

    main()

This way your code will not be run.



来源:https://stackoverflow.com/questions/12391390/does-sphinx-run-my-code-on-executing-make-html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!