繁体   English   中英

什么是构造模块目录的正确方法,以便Sphinx扩展名autodoc可以访问使用sphinx-apidoc找到的所有文件?

[英]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.pycreate_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM