信不信由你,Python项目实际上为我们提供了通过各种Makefile完成此操作的方法。这些文件利用Python Sphinx项目生成一个texi
文件,然后makeinfo
可以将其转换为info
,这是Emacs用于文档的格式。
除了Python3000,这些说明还需要GNU Make和Texinfo。它们在大多数Linux发行版中打包。不同的发行版可能使用不同的命名约定。请参考您的发行版文档以获取相应的软件包名称。对于基于Debian的发行版:
~/$ sudo apt-get install make
~/$ sudo apt-get install texinfo
非Debian系统的软件包名称通常相似。对于Windows用户,我建议使用WSL或创建一个虚拟机。
1. 下载文档
转到https://www.python.org/ftp/python/并下载适合您Python版本的压缩文件。它会是这样的:
https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
您可以使用wget
下载tarball,然后使用tar
解压缩它。选项x
和f
用于“提取文件”:
~/$ wget https://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
安装更多的依赖项。幸运的是,Python 项目提供了一个 Makefile
来创建必要的环境。请查看 Makefile
获取详细信息。
~/$ cd Python-3.7.9/Doc
~/Python-3.7.9/Doc$ make venv
~/Python-3.7.9/Doc$ source venv/bin/activate
3. 运行 sphinx-build
现在正确的环境已经设置好,我们可以运行 Sphinx。使用 -d
选项创建用于生成的缓存。当前目录中找到的文档文件将由 texinfo
"builder" 转换,并输出到 build/texinfo
:
(venv) ~/Python-3.7.9/Doc$ sphinx-build -b texinfo -d build/doctrees . build/texinfo
4. 使用makeinfo
生成info
文件
再次感谢Python维护者提供了我们所需的东西(即使他们没有很好地记录它)。之前的命令创建了一个texi
文件和另一个Makefile
。Makefile调用makeinfo
。
(venv) ~/Python-3.7.9/Doc$ cd build/texinfo
(venv) ~/Python-3.7.9/Doc/build/texinfo$ make
(venv) ~/Python-3.7.9/Doc/build/texinfo$ ls
Makefile python-figures python.info python.texi
像印第安纳·琼斯一样,你拥有了圣杯。许多人在这段旅程中死去,而你已经战胜了困难。请花点时间庆祝一下。
注意:对于我来说,makeinfo
转换产生了错误。无论如何,我还是取得了所需的info
文件并贪婪地从中汲取了知识。
5. 将python.info
加载到Emacs中...
使用C-u C-h i
直接打开python.info
。
要将info文件安装到Emacs帮助目录节点中,请首先检查C-h v Info-default-directory-list
以了解info文件的存储位置。将python.info
文件放置在那里。该目录中可能会有一个名为dir
的文件。 dir
文件由texinfo
生成,并包含节点列表。如果不存在dir
文件,不用担心,这就是我们要创建的文件。请注意,不建议手动编辑dir
文件1。
在放置
python.info
的任何目录中运行
update-info-dir
。这将使用
python.info
更新(或创建)
dir
。
有关
texinfo
系统的完整详细信息,请参见
https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Installing-an-Info-File.html。
1除了人为错误(例如引用打错),问题可能会因“格式不正确”的
dir
文件而出现。