Как получить документацию Python в формате Texinfo Info?

начиная с Python 2.6, кажется, что документация находится в новом reStructuredText формат, и это не кажется очень легко построить Texinfo Info файл из коробки больше.

Я наркоман Emacs и предпочитаю мою документацию, установленную в Info.

есть ли у кого-нибудь Python 2.6 или более поздние документы в формате Texinfo? Как вы их обратили? Или где-то есть поддерживаемая сборка?

Я знаю, что могу использовать w3m или haddoc для просмотра html-документов - я действительно хочу, чтобы они были в информации.

Я играл с Pandoc но после нескольких небольших экспериментов он, похоже, не очень хорошо справляется со связями между документами, и мой большой эксперимент - запуск его через все документы, чтобы посмотреть, что произойдет - все еще пыхтит два дня с тех пор, как я начал его!

два хороших ответа

выделение двух ответов ниже, потому что так не позволит мне принять оба ответы:

  • @wilfred-hughes:установка из MELPA Это самый быстрый способ получить информацию о предварительной сборке в Emacs
  • @alioth:дом сам похоже, что это намного проще, чем когда я задал этот вопрос в 2009

7 ответов


я упаковал документы Python в виде файла texinfo.

Если вы используете Emacs с MELPA, вы можете просто установить это с M-x package-install python-info.


Джон Уолтман http://bitbucket.org/jonwaltman/sphinx-info раздвоенный Сфинкс и написал texinfo builder, он может создавать документацию python (я еще не сделал этого). Похоже, что вскоре он будет слит со сфинксом.

вот быстрые ссылки для загрузки (временно):

шаги для создания документа python в формате texinfo:

загрузите исходный код python

Загрузите и установите сфинкс-инфо пакет (в virtualenv)

введите в каталог Python / Doc из python источники

отредактируйте файл Makefile в build цель заменить $(PYTHON) tools/sphinx-build.py С sphinx-build, затем добавьте эту цель в makefile, обратите внимание, пространство перед echo-вкладка:

texinfo: BUILDER = texinfo
texinfo: build
    @echo
    @echo "Build finished. The Texinfo files are in _build/texinfo."
    @echo "Run \`make' in that directory to run these through makeinfo" \
          "(use \`make info' here to do that automatically)."

изменить Python/Doc/conf.py добавление:

texinfo_documents = [
    ('contents', 'python', 'Python Documentation', 'Georg Brandl',
     'Python', 'The Python Programming Language', 'Documentation tools',
     1),
]

затем запустите make texinfo и он должен создать текстовый файл в каталоге build/texinfo. Для создания файла info запустите makeinfo python.texi


без сомнения, было бы здорово и сложно создать документацию Python на вашей конкретной версии Python самостоятельно. Просто следуйте EmacsWiki, или не стесняйтесь компилировать его локально (в Debian Jessy для Python3.4.2):

sudo apt-get install python3-sphinx
cd ~/Desktop
wget https://www.python.org/ftp/python/3.4.2/Python-3.4.2rc1.tar.xz
tar -xf Python-3.4.2rc1.tar.xz
cd Python-3.4.2rc1/Doc/
sphinx-build -b texinfo -d build/doctrees . build/texinfo
# extra time to build
cd build/texinfo/
makeinfo python.texi
# extra time for convertation

Я получил это дерево:

.                                                                                                                              
├── logging_flow.png                                                                                                           
├── Makefile                                                                                                                   
├── pathlib-inheritance.png                                                                                                    
├── python.info                                                                                                                
├── python.info-1                                                                                                              
├── python.info-10                                                                                                             
├── python.info-11                                                                                                             
├── python.info-12                                                                                                             
├── python.info-13                                                                                                             
├── python.info-14                                                                                                             
├── python.info-15                                                                                                             
├── python.info-16                                                                                                             
├── python.info-17                                                                                                             
├── python.info-18                                                                                                             
├── python.info-19                                                                                                             
├── python.info-2                                                                                                              
├── python.info-20                                                                                                             
├── python.info-21                                                                                                             
├── python.info-22                                                                                                             
├── python.info-23                                                                                                             
├── python.info-24                                                                                                             
├── python.info-25                                                                                                             
├── python.info-26                                                                                                             
├── python.info-27                                                                                                             
├── python.info-28                                                                                                             
├── python.info-29                                                                                                             
├── python.info-3                                                                                                              
├── python.info-30                                                                                                             
├── python.info-31                                                                                                             
├── python.info-32                                                                                                             
├── python.info-33                                                                                                             
├── python.info-34                                                                                                             
├── python.info-4                                                                                                              
├── python.info-5                                                                                                              
├── python.info-6                                                                                                              
├── python.info-7                                                                                                              
├── python.info-8                                                                                                              
├── python.info-9                                                                                                              
├── python.texi                                                                                                                
├── python-video-icon.png                                                                                                      
├── tulip_coro.png                                                                                                             
└── turtle-star.png

и теперь можно просмотреть документацию python изначально в Emacs by

C-u C-h I python-информация РЕТ

python-info-это имя файла (четвертое в дереве выше) и даже закладка некоторых произвольных узлов для привычного и регулярного удобства просмотра.


для тех, кто следует за этим вопросом в надежде на ответ, я нашел другую реализацию rst2texinfo, которую вы могли бы попробовать:

http://bitbucket.org/jonwaltman/rst2texinfo/src


еще одним "обходным путем" является выполнение pydoc как предложил Nikokrock непосредственно в Emacs:

(defun pydoc (&optional arg)
  (interactive)
  (when (not (stringp arg))
    (setq arg (thing-at-point 'word)))

  (setq cmd (concat "pydoc " arg))
  (ad-activate-regexp "auto-compile-yes-or-no-p-always-yes")
  (shell-command cmd)
  (setq pydoc-buf (get-buffer "*Shell Command Output*"))
  (switch-to-buffer-other-window pydoc-buf)
  (python-mode)
  (ad-deactivate-regexp "auto-compile-yes-or-no-p-always-yes")
)

Майкл Эрнст использовал для поддержания информационных форматов документов Python:

http://www.cs.washington.edu/homes/mernst/software/#python-info

вы можете попробовать использовать его makefile и html2texi скрипт для создания обновленной версии. Оба связаны по вышеуказанному адресу. Я не уверен, насколько хорошо он работает сейчас (последняя версия была около 2001 года), но его скрипт хорошо прокомментирован (grep для "python").


документы Python теперь генерируются с помощью Sphynx framework. Эта структура не имеет выходного формата texinfo. В настоящее время он имеет:

  1. HTML-код
  2. латекс
  3. обычный текст

возможно, вы можете получить то, что хотите, используя выход Latex. С выводом текста вы потеряете перекрестный ref.

Personnaly я предпочитаю использовать pydoc, когда мне нужен текстовый вывод. С Vim у меня есть shorcut для вызова pydoc и открытия окна с doc для сущность под моим курсором...