如何获得Texinfo格式的Python文档?
自Python2.6以来,文档似乎采用了新的格式,并且似乎不再很容易构建现成的文件 我是一个Emacs上瘾者,更喜欢在Info中安装我的文档 有人有Texinfo格式的Python 2.6或更高版本的文档吗?你是怎么把它们转化的?或者,在那里的某个地方有维护的构建吗 我知道我可以使用w3m或查看html文档-我真的希望它们在信息中 我已经玩过了,但是在一些小实验之后,它似乎不能很好地处理文档之间的链接,而我的大实验——在所有文档中运行它,看看会发生什么——在我开始它的两天之后仍然在进行中 两个好答案 在下面突出显示两个答案,因为SO不允许我同时接受这两个答案:如何获得Texinfo格式的Python文档?,python,emacs,restructuredtext,texinfo,Python,Emacs,Restructuredtext,Texinfo,自Python2.6以来,文档似乎采用了新的格式,并且似乎不再很容易构建现成的文件 我是一个Emacs上瘾者,更喜欢在Info中安装我的文档 有人有Texinfo格式的Python 2.6或更高版本的文档吗?你是怎么把它们转化的?或者,在那里的某个地方有维护的构建吗 我知道我可以使用w3m或查看html文档-我真的希望它们在信息中 我已经玩过了,但是在一些小实验之后,它似乎不能很好地处理文档之间的链接,而我的大实验——在所有文档中运行它,看看会发生什么——在我开始它的两天之后仍然在进行中 两个好
- @威尔弗雷德·休斯:这是将预构建信息导入Emacs的最快方法
- @看起来比2009年我问这个问题时容易多了
pydoc
:
(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")
)
Michael Ernst用于维护Python文档的信息格式:
您可以尝试使用他的makefile和html2texi脚本生成更新版本。两者都链接到上面的URL。我不确定它现在的工作情况如何(上一个版本是2001年左右),但他的脚本得到了很好的评论(grep表示“python”)。对于那些希望回答这个问题的人,我发现了另一个rst2texinfo实现,您可能想尝试一下: 乔恩·沃尔特曼(Jon Waltman)创建了sphinx并编写了一个texinfo构建器,它可以构建python文档(我还没有完成)。看来它很快就会合并成狮身人面像 以下是下载的快速链接(临时):
build
target替换为sphinx build
,使用sphinx build
替换$(PYTHON)工具/sphinx build.py
,然后将此目标添加到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目录中生成texifile。
要生成信息文件,请运行makeinfo python.texi
,我已经打包了
如果您将Emacs与MELPA一起使用,只需使用
M-x包install python info
安装即可,毫无疑问,在您的特定python版本上自己生成python文档将是一件非常酷且具有挑战性的事情。只需遵循以下步骤,或者可以在本地自由编译(在Debian Jessy for Python3.4.2中):
我得到了这棵树:
.
├── 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中本机查看python文档
C-u C-h i python信息检索
python info是一个文件名(在上面的树中是第四个),甚至可以为一些任意节点添加书签,以方便习惯性和定期的查看。Ubuntu发行版至少从18.04(仿生版)开始提供了pythonX.Y-doc包(包括info格式的文档);在19.04中,X.Y代表2.7、3.7和3.8。该软件包没有太多依赖项,我认为也可以在其他发行版中安装它。信不信由你,Python项目实际上为我们提供了一种通过各种Makefiles实现这一点的方法。这些文件利用Python Sphinx项目生成
texi
文件,然后makeinfo
可以转换为info
,Emacs用于文档的格式
除了Python3000之外,这些说明还需要和。这些都打包在大多数Linux发行版中。不同的发行版可能使用不同的命名约定。有关相应的软件包名称,请参阅发行版的文档。对于基于Debian的发行版:
#安装make以利用Python项目提供的makefile
~/$sudo apt获取安装制造
#为“makeinfo”命令安装texinfo
~/$sudo apt获取安装信息
对于非Debian系统,包名通常是相似的。对于Windows用户,我建议使用或创建虚拟机
1.下载文档
导航到并下载Python版本的tarball。它看起来像:
https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
您可以使用wget
下载tarball,并使用tar
解包。选项x
和f
用于“提取文件”:
#下载tarball
~/$wgethttps://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
#取出焦油球
~/$tar xf Python-3.7.9.tar.xz
2.在Python-X.Y.Z/Doc中运行make-venv
Sphinx需要的依赖项比与基本pip
install捆绑的依赖项更多。幸运的是,Python项目提供了一个Makefile
来创建必要的环境。有关详细信息,请参见Makefile
#导航到Doc/目录
~/$cd Python-3.7.9/Doc
#“使用必要的工具创建venv”
~/Python-3.7.9/Doc$make-venv
#激活由make创建的venv
~/Python-3.7.9/Doc$source venv/bin/activate
3.运行sphinx构建
现在已经设置了正确的环境,我们可以运行Sphinx了。此调用将为我们创建一个缓存
https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz