没有为包中的所有python模块生成模块文档

2024-04-23 20:32:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下目录结构。在

$ tree emaildiff/
|____
| |______init__.py
| |______init__.pyc
| |____mail
| | |____.DS_Store
| | |______init__.py
| | |______init__.pyc
| | |____send.py
| | |____send.pyc
| |____maildiff_cmd.py
| |____maildiff_cmd.pyc
| |____version.py
| |____version.pyc

我有两页的maildiff和send代码

^{pr2}$

基于

我所拥有的

.. automodule:: maildiff_cmd
    :members:
    :undoc-members:
    :inherited-members:
    :show-inheritance:

为了发送.py在

.. automodule:: send
    :members:
    :undoc-members:
    :inherited-members:
    :show-inheritance:

在配置文件我将python模块路径作为

sys.path.insert(0, os.path.abspath('../../emaildiff'))

但我还是在做html时出错了

====================================
/Development/pyclones/git-maildiff/docs/source/maildiff.rst:13: WARNING: autodoc: failed to import module u'maildiff_cmd'; the following exception was raised:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/sphinx/ext/autodoc.py", line 385, in import_object
    __import__(self.modname)
  File "/Development/pyclones/git-maildiff/emaildiff/maildiff_cmd.py", line 14, in <module>
    import emaildiff.mail.send as send
ImportError: No module named emaildiff.mail.send
/Development/pyclones/git-maildiff/docs/source/send.rst:7: WARNING: Title underline too short.

以下第二个错误:

Welcome to maildiff git command documentation!
====================================
/Development/pyclones/git-maildiff/docs/source/send.rst:13: WARNING: autodoc: failed to import module u'send'; the following exception was raised:
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/sphinx/ext/autodoc.py", line 385, in import_object
    __import__(self.modname)
ImportError: No module named send

所以如果我包括

sys.path.insert(1, os.path.abspath('../../emaildiff/mail'))

第二个错误消失,生成的文档发送.py但是emaildiff/mailddiff_命令行永远不会生成。在


Tags: pathpyimportgitcmdsendinitmail
1条回答
网友
1楼 · 发布于 2024-04-23 20:32:08

我成功了

我必须包含每个要显式插入的模块位置路径,即使在实际的模块旁边有一个\uuinit_uu.py文件。

sys.path.insert(0, os.path.abspath('../../'))
sys.path.insert(1, os.path.abspath('../../emaildiff'))
sys.path.insert(2, os.path.abspath('../../emaildiff/mail'))

相关问题 更多 >