[英]What is the correct way to structure a module directory so that the Sphinx extension autodoc can access all files found using sphinx-apidoc?
我正在尝试使用Sphinx制作我最近开始创建的模块的文档。 如何组织代码,以便autodoc和python都能正确读取它?
我具有以下文件结构,其中inference.py
从create_data.py
导入一个Class
:
[meg_analysis]
|
|-[docs]
| |
| |-{files created by apidoc}
|
|-create_data.py
|-inference.py
sphinx-apidoc
创建一个名为meg_analysis.rst
的文件,其中包含meg_analysis.rst
指令,包括:
.. automodule:: meg_analysis.inference
:members:
:undoc-members:
:show-inheritance:
当我运行make html
,出现以下消息:
WARNING: autodoc: failed to import module 'inference' from module 'meg_analysis'; the following exception was raised:
No module named 'create_data'
我可以通过将import语句from create_data import SimulatedData
更改为from meg_analysis.create_data import SimulatedData
来解决此错误。
问题是,现在当我运行python inference.py
我得到ModuleNotFoundError: No module named 'meg_analysis'
,PyCharm开始以红色突出显示其所有用途。
有没有一种方法可以使autodoc
成功地记录我的所有文件,而不必每次我想使用模块另一部分中的内容时都包括模块级导入? 我是否在某种程度上错误地构造了代码?
同时添加项目目录和上面的目录可解决此问题。
在sphinx-quickstart
创建的conf.py
文件中,添加以下行
import sys
sys.path.insert(0, '/Users/{USER_NAME}/PycharmProjects/')
sys.path.insert(0, '/Users/{USER_NAME}/PycharmProjects/meg_analysis/')
不知道这是否是最好的解决方案,但似乎可行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.