2015-05-12 2 views
0

У меня есть структура каталогов.документация модуля не создается для всех модулей 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 и отправить

$ tree docs/source/ 
| |____ 
| | |_____static 
| | |_____templates 
| | |____conf.py 
| | |____index.rst 
| | |____maildiff.rst 
| | |____send.rst 
| | |____terminal.glue 

на основе

, что у меня есть

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

и send.py

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

и в conf.py я вставил путь модуль питона как

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')) 

2-я ошибка исчезает, и docs генерируется для send.py, но emaildiff/mailddiff_cmd.py никогда не генерируется.

+0

Это не должно быть 'sys.path.insert (1, os.path.abspath ('../../'))' – cwallenpoole

ответ

0

Я получил это работает,

я должен был включать в себя каждый из пути модуля местоположения для вставки в явном виде, хотя я имел __init__.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')) 
+0

Кажется, что порядок, в котором вставлены стези важный. Поэтому, если кто-то наткнулся на это, используйте 'sys.path.append' вместо изменения sys.path.insert. Это немного сбило меня с толку. – salomonvh

Смежные вопросы