pydoc
— Генератор документации и интерактивная справочная система¶
Исходный код: Lib/pydoc.py
Модуль pydoc
автоматически генерирует документацию из модулей Python.
Документация может быть представлена в виде страниц текста в консоли, подана в
веб-браузер или сохранена в HTML-файлах.
Для модулей, классов, функций и методов отображаемая документация является
производной от докстрингов (т.е. __doc__
атрибут) объекта и рекурсивно
от его документируемых членов. Если нет докстринга, pydoc
пытается
получить описание из блока строк комментариев непосредственно над определением
класса, функции или метода в исходном файле или в верхней части модуля (см.
inspect.getcomments()
).
Встроенная функция help()
вызывает интерактивную справочную систему в
интерактивном интерпретатор, которая использует pydoc
для создания
документации в виде текста в консоли. Та же текстовая документация может также
быть рассмотрена снаружи Python интерпретатора, управляя pydoc как
сценарием в командной строки операционной системы. Например, запуск:
pydoc sys
в приглашении оболочки покажет документацию относительно модуля
sys
, в стиле, подобном справочным страницам, показанным командой Unix
man. Аргументом pydoc может быть имя функции, модуля или пакета
или пунктирная ссылка на класс, метод или функцию в модуле или модуле в пакете.
Если аргумент pydoc выглядит как путь (то есть содержит разделитель пути
для операционной системы, например косую черту в Unix) и ссылается на
существующий исходный файл Python, то для этого файла создается
документация.
Примечание
Для поиска объектов и их документации pydoc
импортирует модули, подлежащие
документированию. Поэтому в этом случае будет выполняться любой код на
уровне модуля. Используйте защиту if __name__ == '__main__':
, чтобы выполнить только
код, когда файл будет рассматриваться как сценарий и не просто импортирован.
При печати выходных данных на консоль pydoc пытается разбиить на страницы
выходные данные для упрощения чтения. Если переменная окружения PAGER
будет установлена, то pydoc будет использовать своё значение в качестве
программы нумерации страниц.
Указание флага -w
перед аргументом приведет к записи HTML-документации
в файл в текущем каталоге, а не к отображению текста на консоли.
Определяя флаг -k
, прежде чем аргумент будет искать линии резюме всех
доступных модулей для ключевой, данного как аргумент, снова способом,
подобным команде Unix man. Строка обзора модуля является первой строкой
его документации строка.
Вы можете также использовать pydoc, чтобы запустить сервер HTTP на локальной
машине, которая передаст документацию веб-браузерову. pydoc -p 1234
запустит сервер HTTP на порте 1234, позволяя вам просмотреть документацию в
http://localhost:1234/
в вашем предпочтительном веб-браузере. При указании 0
в
качестве номера порта выбирается произвольный неиспользуемый порт.
pydoc -n <hostname> запустит прослушивание сервера с указанным именем узла. По умолчанию имя узла равно «localhost», но если требуется получить доступ к серверу с других компьютеров, может потребоваться изменить имя узла, на которое отвечает сервер. Во время разработки это особенно полезно, если необходимо выполнить pydoc из контейнера.
pydoc -b запустит сервер и дополнительно откроет веб-браузер на индексную страницу модуля. Каждая поданная страница имеет панель навигации в верхней части, где можно получить помощь по отдельному элементу, найти все модули с ключевой в их строке обзора и перейти на страницы Module index, Topics и Keywords.
Когда pydoc производит документацию, он использует текущую окружающую
среду и путь, чтобы определить местонахождение модулей. Таким образом, вызов
pydoc spam документирует именно ту версию модуля, которую вы получили бы, если
бы запустили Python интерпретатор и набрали import spam
.
Модуль docs для основных модулей, как предполагается, находятся в
https://docs.python.org/X.Y/library/
, где X
и Y
- мажорные и минорные номера
версий Python интерпретатора. Это можно переопределить, установив для
переменной среды PYTHONDOCS
другой URL-адрес или каталог локальная,
содержащий страницы справочного руководства библиотеки.
Изменено в версии 3.2: Добавлен параметр -b
.
Изменено в версии 3.3: Параметр командной строки -g
был удален.
Изменено в версии 3.4: Теперь pydoc
использует inspect.signature()
, а не inspect.getfullargspec()
для извлечения
сигнатуры информации из вызываемых объектах.
Изменено в версии 3.7: Добавлен параметр -n
.