最近在学 Python,所以总是在看 Python 的官方文档, https://docs.python.org/2/

因为祖传基因的影响,我总是喜欢把这些文档保存到本地,不过 Python 的文档实在是太多, 根本存不过来。后来追踪到 Python 官方的 GitHub 文档地址, 干脆就把官方的 GitHub 下载下来了:cpython GitHub 地址


1. 下载 Python 的 GitHub 仓库:cpython
从 GitHub 上 clone 仓库很简单,在命令行中执行命令 git clone git@github.com:python/cpython.git 就可以啦。

不过因为 Python 的 cpython 仓库比较大,一时半会儿下载不完, 我在 clone 到本地的时候出现了网络问题,进度条卡住不动了。 根据之前的经验,此时如果我直接 Ctrl + C 退出 clone, 那么下载了一半的文件,就会被 git 删除,这是不好的。

所以我选择的是在另一个命令窗口里面,先把下载了一半的文件完全 cp 一份, 然后再到卡住的窗口里面,把正在执行的 git clone 命令给 Ctrl + C 了。

杀掉 git 命令后,ls 看当前的目录,之前下载了一半的那些文件果然又双叒不见了。 不过幸好刚刚做了备份。进到备份的目录里面,执行 git pull 命令,居然能够断点续传。这是好的。


2. 构建 Python 文档
clone 完了 Python 的仓库,下面就可以构建文档了。 要说 Python 社区做的文档真是不错,基本不需要复杂的操作, 就可以把 Python 的文档构建出来,真是不服都不行。

2.1 构建 epub 格式的文档
做这个的目的是希望在上下班的路上,可以在手机上方便的查看 Python 文档, 就当看电子书了,还能学英语。

进入 cpython 项目的目录里面:cd cpython

因为刚刚 clone 下来,项目的目录里面是空的,需要我们 checkout 一个分支出来。 可以先看看都有哪些分支,执行命令 git branch -a

[root@fengbo cpython]$ git branch -a
remotes/origin/2.7
remotes/origin/3.4
remotes/origin/3.5
remotes/origin/3.6
remotes/origin/aleaxit-patch-
remotes/origin/master

因为我现在使用的是 Python2.7 ,所以执行命令 git checkout 2.7 就可以检出 2.7 分支的代码啦。

检出完成后,进入 Doc 目录,然后执行命令 make epub 就可以制作 epub 格式的 Python 文档电子书了。

[root@fengbo Doc]# git checkout 2.7

Switched to branch '2.7'

[root@fengbo Doc]# make epub

sphinx-build -b epub -d build/doctrees -D latex_elements.papersize= . build/epub

...

build succeeded.

Build finished; the epub files are in build/epub.

构建完成后,文件会被放在 cpython/Doc/build/epub/Python.epub 的位置。

其实在构建 epub 的时候报了很多错误,比如缺少 sphinx 包。 缺什么包安装什么就可以了,不会安装的就去百度查查怎么安装。

epub 文件的下载地址:

链接:https://pan.baidu.com/s/1o9JJFeE 密码:kczx

2.2 构建 html
构建 html 的用途,是建立一个本地的 Python 文档网站,和 https://docs.python.org/2/ 一样的那种。

构建 html 和构建 epub 一样,也是到 cpython/Doc 里面。 不过这次是执行命令 make html就可以了。

[root@fengbo Doc]# make html

sphinx-build -b html -d build/doctrees -D latex_elements.papersize= . build/html

Running Sphinx v1.6.6

build succeeded.

Build finished. The HTML pages are in build/html.

不过构建 html 的结果,是一个目录 cpython/Doc/build/html,而目录里面就是 .html 的文件啦。

这个目录直接就可以作为网站的根目录来使用,也可以扔到网站的某个子目录里面。

下面是我构建后的效果:py.fengbohello.top/2/


同步发表:https://www.fengbohello.top/archives/python-build-doc

基于 Python 官方 GitHub 构建 Python 文档的更多相关文章

  1. linux centos7 安装虚拟Python环境,pyenv安装文档

    python多版本控制pyenv安装文档 1.在线安装: curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-i ...

  2. Python处理PDF和Word文档常用的方法

    Python处理PDF和Word文档的模块是PyPDF2,使用之前需要先导入. 打开一个PDF文档的操作顺序是:用open()函数打开文件并用一个变量来接收,然后把变量给传递给PdfFileReade ...

  3. 分享一下自己写的Python 3的各种PDF文档【花了半年时间那】

    这些文档花了我半年的时间去整理.因为是第一次进行整理,希望帮助后来者少走弯路.毕竟是第一次整理.哪些地方不到位,希望大家和我练习,我们一起把它做好,以下就直接给出下载地址了,都是免积分的下载奥.因此. ...

  4. 使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解(新手必学)

    为大家介绍下Python爬虫库BeautifulSoup遍历文档树并对标签进行操作的详细方法与函数下面就是使用Python爬虫库BeautifulSoup对文档树进行遍历并对标签进行操作的实例,都是最 ...

  5. Spring Boot中使用Swagger2构建API文档

    程序员都很希望别人能写技术文档,自己却很不愿意写文档.因为接口数量繁多,并且充满业务细节,写文档需要花大量的时间去处理格式排版,代码修改后还需要同步修改文档,经常因为项目时间紧等原因导致文档滞后于代码 ...

  6. springboot+mybatis-puls利用swagger构建api文档

    项目开发常采用前后端分离的方式.前后端通过API进行交互,在Swagger UI中,前后端人员能够直观预览并且测试API,方便前后端人员同步开发. 在SpringBoot中集成swagger,步骤如下 ...

  7. springboot利用swagger构建api文档

    前言 Swagger 是一款RESTFUL接口的文档在线自动生成+功能测试功能软件.本文简单介绍了在项目中集成swagger的方法和一些常见问题.如果想深入分析项目源码,了解更多内容,见参考资料. S ...

  8. 喜大普奔!GitHub中文版帮助文档上线了!

    日前,GitHub 文档的简体中文正式发布,开发者可以到官方文档上随意查阅浏览中文文档啦!   对于想要玩 GitHub,但一直苦于英语水平较差的程序员来说,这真是一个天大的好消息.下面一起来感受一下 ...

  9. springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务

    springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...

随机推荐

  1. mybatis中union可以用if判断连接,但是<select>中第一个select语句不能被if判断,因此可以从dual表中查询null来凑齐。union如果使用order by排序,那么只能放在最后一个查询语句的位置,并且不能带表名。

    <!-- 一址多证纳税人分析表 --> <select id="yzdznsrlistPage" parameterType="page" r ...

  2. ceil()函数的应用-hdu1065

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1065 题目描述: floor(x)  is the largest integer not great ...

  3. Linux学习之RPM包管理-yum管理(十七)

    Linux学习之RPM包管理-yum管理 目录 IP地址配置 网络yum源 yum命令 光盘yum源搭建 IP地址配置 IP+子网掩码就可以在局域网(内网)使用. IP+子网掩码+网关+DNS就可以访 ...

  4. js算法初窥07(算法复杂度)

    算法复杂度是我们来衡量一个算法执行效率的一个度量标准,算法复杂度通常主要有时间复杂度和空间复杂度两种.时间复杂度就是指算法代码在运行最终得到我们想要的结果时所消耗的时间,而空间复杂度则是指算法中用来存 ...

  5. java.lang.NoClassDefFoundError: org/apache/hadoop/hbase/HBaseConfiguration] with root cause

    在用Java web和hbase连接时,报出来这个错误,一开始我以为是hbase导入的包位置不对,不从build path那里导入,而是从WEB-INF下的lib中导入,尝试了之后结果仍是这个错误 十 ...

  6. Jmeter压测过程报错the target server failed to respond

    失败事务报错信息如下, Socket closed Non HTTP response code: org.apache.http.NoHttpResponseException (the targe ...

  7. Centos6.5部署Rsyslog+cron+rsync备份服务器

    1.前言 rsync是一种快速且功能非常广泛的文件复制工具.它可以在本地复制,通过任何远程shell复制到/从另一个主机复制,也可以复制到/从远程rsync守护进程.它提供了大量的选项,可以控制其行为 ...

  8. 获取当前泛型类的传入,BaseDaoImpl<T> implements BaseDao<T>

    public abstract class BaseDaoImpl<T> implements BaseDao<T> { private Class<T> claz ...

  9. 通过echarts的demo

    通过最近两天对echarts的了解,下面用echarts.js写了一个小效果: 效果的demo为: <!DOCTYPE html> <html lang="en" ...

  10. sklearn逻辑回归

    sklearn逻辑回归 logistics回归名字虽然叫回归,但实际是用回归方法解决分类的问题,其形式简洁明了,训练的模型参数还有实际的解释意义,因此在机器学习中非常常见. 理论部分 设数据集有n个独 ...