Как получить документацию по Python в формате Texinfo Info? - PullRequest
31 голосов
/ 28 июня 2009

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

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

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

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

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

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

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

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

Ответы [ 7 ]

23 голосов
/ 17 октября 2010

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

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

Шаги для генерации документа Python в формате texinfo:

Скачать исходный код Python

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

Введите в каталог Python / Doc из исходных кодов Python

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

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. Для создания информационного файла запустите makeinfo python.texi

9 голосов
/ 17 сентября 2013

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

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

5 голосов
/ 11 марта 2017

Без сомнения, было бы здорово и сложно создать документацию по 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

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

C-u C-h i python-info RET

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

3 голосов
/ 09 сентября 2010

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

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

2 голосов
/ 04 июля 2009

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

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

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

2 голосов
/ 01 июля 2009

Еще один «обходной путь» - выполнение 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")
)
1 голос
/ 30 июня 2009

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

  1. HTML
  2. Латекс
  3. простой текст

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

Personnaly Я предпочитаю использовать pydoc, когда я хочу текстовый вывод. С Vim у меня есть ярлык для вызова pydoc и открытия окна с документом для объекта под моим курсором ...

...