2014-09-05 3 views
2

У меня есть следующий два класса:сфинкс-apidoc не находит все файлы питон

class Test1(): 
    """Test1()""" 

    def fn_test1(): 
     """fn_test1 """ 
     print "Hello1" 

.

class Test2(): 
    """Test2()""" 

    def fn_test2(): 
     """fn_test2 """ 
     print "Hello2" 

Этих классов хранятся в разных папках, которые показаны ниже:

$ tree -A 
. 
├── docs 
│ ├── _build 
│ ├── conf.py 
│ ├── index.rst 
│ ├── make.bat 
│ ├── Makefile 
│ ├── _static 
│ ├── _templates 
│ └── Test1.rst 
└── src 
    └── standard 
     ├── test1 
     │ └── Test1.py 
     └── test2 
      └── Test2.py 

Я попытался запустить сфинкс-apidoc, но находит только Test1.rst с помощью следующей команды:

$ sphinx-apidoc -f -A "Author" -H "Test project" -V "version 1.0" -R "release 2014" -F -d 4 -e -P -o docs /home/u/tmp/sphinx/src/standard/* 
Creating file docs/Test1.rst. 
Creating file docs/conf.py. 
Creating file docs/index.rst. 
Creating file docs/Makefile. 
Creating file docs/make.bat. 

Если удалить * он находит ничего:

$ sphinx-apidoc -f -A "Author" -H "Test project" -V "version 1.0" -R "release 2014" -F -d 4 -e -P -o docs /home/u/tmp/sphinx/src/standard/ 
Creating file docs/conf.py. 
Creating file docs/index.rst. 
Creating file docs/Makefile. 
Creating file docs/make.bat. 

Как можно вызвать sphinx-apidoc, чтобы он нашел Test1.py и Test2.py?

ответ

1

Упаковка Python зависит от дерева каталогов. Итак, из того, что вы сделали, стандарт представляет собой пакет с двумя «подпакетами», test1 и test2. Каждая подпапка содержит модуль, либо Test1, либо Test2.

Вы должны добавить (возможно) пустой файл с именем __init__.py для каждого каталога, содержащего пакет и запустить

sphinx-apidoc -f -A "Author" -H "Test project" -V "version 1.0" -R "release 2014" -F -d 4 -e -P -o docs /home/u/tmp/sphinx/src/standard/ 

без знака *.

+0

Я добавил «\ _ \ _ init \ _ \ _. Py» и sphinx-apidoc создал standard.rst, standard.test1.Test1.rst, standard.test1.rst, standard.test2.Test2.rst, standard. test2.rst. Однако, html жалуется на отсутствие модуля с именем Test1, без модуля с именем standard, без модуля с именем standard.test1, без модуля с именем standard.test1.Test1, без модуля с именем standard.test2, без модуля с именем standard.test2.Test2, /home/mictadlo/tmp/sphinx/docs/Test1.rst :: ВНИМАНИЕ: документ не включен в любой текст – user977828

+0

Конечно, вы получаете файл .rst для каждого пакета и модуля, следовательно, 3 пакета и 2 модуля в вашем случае , Файл Test1.rst был сгенерирован * предыдущим * вызовом sphinx-apidoc. Чтобы начать с чистой базы, очистите каталог документов. Жалоба на жалование - совершенно другая проблема. Это связано с тем, что ваш каталог src не включен в ваш путь. – MathieuS

+0

Я думаю, что это сработало, но почему «содержимое модуля» пусто [в документации] (http://i.imgur.com/oUPvkGL.png?1) и есть ли какие-либо примеры, как изменить «\ _ \ _init \ _ \ _. py ", чтобы сделать более приятные заголовки, например изменить «стандартный пакет» на «Test project» и изменить «Subpackages» на «стандартный пакет»? – user977828

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