pydoc.md
1> **Источник:** https://python-all.ru/3.0/library/pydoc.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# `pydoc` – Генератор документации и интерактивная справочная система89Модуль `pydoc` автоматически создаёт документацию из модулей Python. Документация может быть отображена в виде текстовых страниц на консоли, передана веб-браузеру или сохранена в HTML-файлы.1011Встроенная функция [`help()`](https://python-all.ru/3.0/library/functions.html#help) вызывает справочную систему в интерактивном интерпретаторе, которая использует `pydoc` для создания своей документации в виде текста на консоли. Эту же текстовую документацию можно просмотреть и за пределами интерпретатора Python, запустив **pydoc** как скрипт из командной строки операционной системы. Например, выполнение1213```python14pydoc sys15```1617в командной строке отобразит документацию по модулю [`sys`](https://python-all.ru/3.0/library/sys.html#module-sys) в стиле, напоминающем страницы руководства Unix-команды **man**. Аргументом **pydoc** может быть имя функции, модуля или пакета, а также точечная ссылка на класс, метод или функцию внутри модуля или пакета. Если аргумент **pydoc** выглядит как путь (то есть содержит разделитель пути для вашей операционной системы, например, косую черту в Unix) и указывает на существующий файл исходного кода Python, то документация создаётся для этого файла.1819> **Примечание**20>21> Чтобы найти объекты и их документацию, `pydoc` импортирует документируемый модуль (модули). Поэтому любой код на уровне модуля будет выполнен в этот момент. Используйте защиту `if __name__ == '__main__':`, чтобы код выполнялся только при запуске файла как скрипта, а не при импорте.2223Указание флага *-w* перед аргументом приведёт к записи HTML-документации в файл в текущей директории, вместо вывода текста на консоль.2425Указание флага *-k* перед аргументом приведёт к поиску по строкам синопсиса всех доступных модулей для ключевого слова, переданного в качестве аргумента, снова в манере, подобной команде Unix **man**. Строка синопсиса модуля – это первая строка его строки документации.2627Вы также можете использовать **pydoc** для запуска HTTP-сервера на локальной машине, который будет предоставлять документацию для посещающих веб-браузеров. **pydoc** *-p 1234* запустит HTTP-сервер на порту 1234, позволяя вам просматривать документацию по адресу `http://localhost:1234/` в предпочитаемом вами веб-браузере. **pydoc** *-g* запустит сервер и дополнительно откроет небольшой графический интерфейс на основе `Tkinter`, чтобы помочь вам искать страницы документации.2829Когда **pydoc** генерирует документацию, он использует текущее окружение и путь для поиска модулей. Таким образом, вызов **pydoc** *spam* документирует именно ту версию модуля, которую вы получили бы, если бы запустили интерпретатор Python и ввели `import spam`.3031Документация основных модулей предполагается находящейся по адресу [http://docs.python.org/library/](https://python-all.ru/3.0/library/index.html). Это можно изменить, установив переменную окружения **PYTHONDOCS** на другой URL или локальную директорию, содержащую страницы справочного руководства по библиотеке.32