信不信由你,Python 项目实际上为我们提供了一种通过各种 Makefile 实现此目的的方法。这些文件利用 Python Sphinx 项目生成一个texi
文件,makeinfo
然后可以转换为info
Emacs 用于文档的格式。
除了 Python3000,这些指令还需要GNU Make和Texinfo。这些都打包在大多数 Linux 发行版中。不同的发行版可能使用不同的命名约定。请参阅发行版的文档以获取相应的包名称。对于基于 Debian 的发行版:
# install make to utilize the Makefiles provided by the Python project
~/$ sudo apt-get install make
# install texinfo for the `makeinfo` command
~/$ 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
用于“提取文件”:
# download the tarball
~/$ wget https://www.python.org/ftp/python/3.7.9/Python-3.7.9.tar.xz
# extract the tarball
~/$ tar xf Python-3.7.9.tar.xz
2.跑make venv
进去Python-X.Y.Z/Doc
Sphinx 需要比基本pip
安装捆绑更多的依赖项。幸运的是,Python 项目提供了一个Makefile
创建所需的环境。有关Makefile
详细信息,请参阅。
# Navigate to the Doc/ directory
~/$ cd Python-3.7.9/Doc
# "create a venv with necessary tools"
~/Python-3.7.9/Doc$ make venv
# activate the venv created by make
~/Python-3.7.9/Doc$ source venv/bin/activate
3.运行sphinx-build
现在已经设置了正确的环境,我们可以运行 Sphinx。此调用使用选项创建在生成期间使用的缓存-d
。当前目录中的文档文件由texinfo
“builder”转换并输出到build/texinfo
:
# -b: Use the textinfo builder
# -d: Create "doctree pickles" cache in doctrees/
# Use the current directory as source
# Output to 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
.
# Navigate to the output directory
(venv) ~/Python-3.7.9/Doc$ cd build/texinfo
# Run the generated Makefile
(venv) ~/Python-3.7.9/Doc/build/texinfo$ make
# Hark, unto us an info file is born
(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
。
要在 Emacs 帮助目录节点中安装 info 文件,首先检查C-h v Info-default-directory-list
info 文件的存储位置。把python.info
文件放在那里。该目录中可能有一个文件被调用dir
。该dir
文件由节点列表生成texinfo
并包含节点列表。如果不dir
存在文件,请不要担心,这就是我们正在创建的。请注意,不建议dir
手动编辑文件1。
update-info-dir
在您放置的任何目录中运行python.info
。这将更新(或创建)dir
.python.info
有关texinfo
系统的完整详细信息,请参阅https://www.gnu.org/software/texinfo/manual/texinfo/html_node/Installing-an-Info-File.html。
1除了人为错误(例如错误输入参考)外,“格式错误”的dir
文件可能会出现问题。