我正在尝试使用Sphinx为我最近开始创建的一个模块制作文档。我如何组织我的代码,以便autodoc和python都可以正确地读取它?
我有以下文件结构,inference.py在其中从create_data.py导入Class
[meg_analysis]
|
|-[docs]
| |
| |-{files created by apidoc}
|
|-create_data.py
|-inference.pysphinx-apidoc创建一个名为meg_analysis.rst的文件,其中包含ReST指令,包括:
.. 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成功地记录我的所有文件,而不必在每次我想要使用模块的其他部分时都包含模块级导入?我是不是以某种基本的方式错误地构建了我的代码?
发布于 2019-08-28 16:07:41
同时添加项目目录和上面的目录解决了这个问题。
在sphinx-quickstart创建的conf.py文件中,添加以下行
import sys
sys.path.insert(0, '/Users/{USER_NAME}/PycharmProjects/')
sys.path.insert(0, '/Users/{USER_NAME}/PycharmProjects/meg_analysis/')不确定这是否是最好的解决方案,但它似乎是有效的。
https://stackoverflow.com/questions/57679414
复制相似问题