如何获得Texinfo格式的Python文档?

如何获得Texinfo格式的Python文档?,python,emacs,restructuredtext,texinfo,Python,Emacs,Restructuredtext,Texinfo,自Python2.6以来,文档似乎采用了新的格式,并且似乎不再很容易构建现成的文件 我是一个Emacs上瘾者,更喜欢在Info中安装我的文档 有人有Texinfo格式的Python 2.6或更高版本的文档吗?你是怎么把它们转化的?或者,在那里的某个地方有维护的构建吗 我知道我可以使用w3m或查看html文档-我真的希望它们在信息中 我已经玩过了,但是在一些小实验之后,它似乎不能很好地处理文档之间的链接,而我的大实验——在所有文档中运行它,看看会发生什么——在我开始它的两天之后仍然在进行中 两个好

自Python2.6以来,文档似乎采用了新的格式,并且似乎不再很容易构建现成的文件

我是一个Emacs上瘾者,更喜欢在Info中安装我的文档

有人有Texinfo格式的Python 2.6或更高版本的文档吗?你是怎么把它们转化的?或者,在那里的某个地方有维护的构建吗

我知道我可以使用w3m或查看html文档-我真的希望它们在信息中

我已经玩过了,但是在一些小实验之后,它似乎不能很好地处理文档之间的链接,而我的大实验——在所有文档中运行它,看看会发生什么——在我开始它的两天之后仍然在进行中

两个好答案 在下面突出显示两个答案,因为SO不允许我同时接受这两个答案:

  • @威尔弗雷德·休斯:这是将预构建信息导入Emacs的最快方法
  • @看起来比2009年我问这个问题时容易多了

Python文档现在使用Sphynx框架生成。此框架没有texinfo输出格式。目前它有:

  • HTML
  • 乳胶
  • 纯文本
  • 也许你可以使用乳胶输出得到你想要的。使用文本输出,您将丢失交叉引用

    Personnaly当我想要文本输出时,我更喜欢使用pydoc。有了Vim,我可以调用pydoc并打开一个窗口,其中包含光标下实体的文档…

    另一个“解决方法”是按照Nikokrock在Emacs中直接建议执行
    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文档(我还没有完成)。看来它很快就会合并成狮身人面像

    以下是下载的快速链接(临时):

    生成texinfo格式python文档的步骤:

    下载python源代码

    下载并安装该软件包(在virtualenv中)

    从Python源代码中输入Python/Doc目录

    编辑Makefile,将
    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