Jupyter Notebook如何导出PDF

Jupyter Notebook导出PDF问题解决

我今天在用Jupyter导出一个ipynb为PDF的时候,系统提示找不到pandoc:

我发现在我这个miniconda python环境中确实没有pandoc,于是我用下面的代码安装了pandoc:

conda install -c conda-forge pandoc

运行下面的代码检查pandoc是否安装成功:

which pandoc

输出:/root/miniconda3/envs/proj/bin/pandoc,那么pandoc安装成功了。我的环境的名称是proj,是在miniconda下创建的。

但是系统提示还是不行,于是我发现我没有选择用我这个proj的环境内核来打开文件,运行以下代码为proj环境创建内核:

python -m ipykernel install --user --name proj --display-name "Python (proj)"

这里name是标识名,必须和环境名一致,displayname是我们给这个内核的命名,可以随意设定。

然后如图所示,选择这个内核。

但是还是不行,于是我在ipynb文件里面执行了这个代码:

import sys
print(sys.executable)

输出结果是

/root/miniconda3/envs/proj/bin/python

说明我的程序是使用的proj内核

但是我继续执行这个代码的时候:

!which python
!which pandoc

就输出的是:

/usr/bin/python

说明shell命令还是在原来的环境执行

也就是说:

Notebook 的代码在用 proj 内核,但 shell 命令(如 !which pandoc、导出 PDF)是由非 proj 环境的 Jupyter 启动的,因此无法找到 pandoc。

因此回到终端,运行:

conda activate proj
jupyter notebook

重启Jupyter notebook。然后还是无法导出。

后来我发现好像如果要非得在这个图片的位置导出PDF的话,它用的是Ubuntu容器本身的环境,也就是说,和代码的内核完全无关。我需要在容器本身的环境装上pandoc和XeLaTeX。

于是我在终端运行:

conda deactivate

关闭miniconda环境,直到前面没有括号,直接是以root@...开头为止。这样就算回到了ubuntu容器。然后执行:

apt update
apt install -y pandoc

安装pandoc,然后导出PDF,还会显示:

也就是缺少xelatex,我们用图中后面那个网站的教程给的针对linux系统的代码继续执行:

apt-get install texlive-xetex texlive-fonts-recommended texlive-plain-generic

来安装xelatex。

这样再导出就没有任何问题了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值