自己制作本地的Jupyter Book

2020-03-25  本文已影响0人  喜欢苹果的梨

前面一文记录:筛选写书工具的艰苦经历简要记录的自己尝试几种工具的艰苦努力,最后的结论是"Word + Calibre" 制造常用的电子书(DOCX, PDF, EPUB,MOBI和azw3等)还是够用的。不过,还是觉得要写一本使用Python 完成编程的书(近期的计划是商务视角下的数据分析,和高性能计算)​,能够编纂配套的代码展示也是有必要的,所以,又了解了下使用Jupyter NoteBook 编写Python 代码书的技巧,汇总于此。

关于 Jupyter Notebook

Jupyter notebook 由 Fernando Perez 在 2001 发起。它的目标是提供 "Tools for the entire life cycle of research computing." 如果说 Python 是数据科学操作的引擎,那么 IPython 就是交互式的控制面板。

The guy at left is Fernando Perez

Jupyter Book 所需要的工具 - Anaconda 的Jupyter NoteBook就不错

官方在文档中强烈建议新用户用Anaconda打包安装Python和Anaconda——所谓懒人方法,小白必备。其实除了提到的两个工具,Anaconda还包含数据科学和机器学习中经常需要用到的各种软件包,只需下载、解压、安装,所有工具就都一步到位了。

image image image

其中,"C:\Users\86150"就是默认的根目录。

Jupyter Book 生成Demo Book - 很简单的指令

在安装好Jupyter NoteBook 后,创建一个Jupyter Book 的Demo 是很简单的事。

管理员身份打开 Anaconda Prompt

image

创建目录,在Prompt 中定位置该目录,执行jupyter-book create mybookname --demo

会自动生成Jupyter Book 的目录。

image

使用Jupyter NoteBook 编辑 MD, ipynb等 - 另文叙述

执行 jupyter-book build mybookname会自动Build 相应的HTML

image

不过,那些HTML在浏览器直接打开是乱的

image

说是可以推送到 Git Pages,借助GP 的 Jekyll 来得到 – 后面有本地构建Jupyter 书 对应的 Web Site的方法

想要像 Git Pages 那样网页显示 Jupyter Book,需要 Ruby, Jekyll,Gem 和 Bundle – 一定要使用国内的源!

要构建Jupyter Book 本地的Web site,需要类似 Git Hub 的环境,即 Ruby 和 Jekyll。

安装 Ruby

image

得安装 Jekyll – Gem 和 Bundle还是要国内的源

gem install jekyll

安装 Jekyll 的指令很简单,就是gem install jekyll,但是,该指令默认是访问国外的网站,那速度是不能忍受的。所以,必须换成国内的源。

先换国内的源

$ gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
$ gem sources -l
https://gems.ruby-china.com
# 确保只有 gems.ruby-china.com

上面的gems.ruby-china.com只是举例(我安装时倒是测试通过了),也还有其他国内的源可用的。

image

再install Jekyll 就飞快了!

gem install jekyll-paginate

gem install bundle

在没换国内源前,虽然也能成功,但是,jekyll -v 就失败了 – 缺很多东西!

image

即便是安装MSYS2 and MINGW development toolchainJekyll -v 还是失败。

image

虽然似乎可以按照错误提示安装对应的包,但是,太过麻烦!

还是使用Bundle 来的方便:能将所依赖的资源自动安装完成 – 也要国内的源

$ bundle config mirror.https://rubygems.org https://gems.ruby-china.com

换成国内的源然后就是飞快!- bundle install

image

遇到的问题

因为之前安装了 concurrent-ruby 1.1.6,而依赖的是1.1.5,还是不能显示Jekyll -v

image

bundle exec jekyll -v就可以了 – 成功!

image

此时在Jupyter Book 的目录下运行bundle exec Jekyll serve就生成类似GP的Web Book 了!

image image

其他

遗留的需求

要是能使用Jupyter Book 生成PDF就好了。可是,据现有的资料知道,只支持Web 形式的Book。

Jupyter Book 是想模仿国人YiHui XIE 的 R BookDown

https://jupyterbook.org/intro.html

Jupyter Books lets you build an online book using a collection of Jupyter Notebooks and Markdown files. Its output is similar to the excellent Bookdown tool and adds extra functionality for people running a Jupyter stack.

https://bookdown.org/yihui/bookdown/

image

https://bookdown.org/yihui/rmarkdown/

image

https://bookdown.org/yihui/blogdown/

image

几本Jupyter Book 例子

1. jupyterbook.org自带的样例书,并本地构建

image image

2. 不错的The Riemann Problems for Hyperbolic PDEs - 还有视频

https://github.com/clawpack/riemann_book

image

JupyterLab,号称极其强大的下一代notebook!- 感兴趣就自己找找吧

一些资料

Dan Toomey 的几本书

上一篇 下一篇

猜你喜欢

热点阅读