每当我尝试将Jupyter笔记本导出为PDF时,都会在单独的窗口中出现以下错误:
500 : Internal Server Error
The error was:
nbconvert failed: xelatex not found on PATH, if you have not installed xelatex you may need to do so. Find further instructions at https://nbconvert.readthedocs.io/en/latest/install.html#installing-tex.
我正在运行macOS Sierra 10.12.6。
我尝试过的事情:
运行
!echo $PATH
收益:
/Users/ed/anaconda/bin:/Users/ed/anaconda/bin:/usr/bin:/bin:/usr/sbin:/sbin
我按照@einsweniger建议在这里找到了包含xelatex的目录:/ usr / local / texlive / bin / x86_64-darwin。我将XeLatex复制并粘贴到上面的bin目录中,并得到一个新错误:
```nbconvert failed: PDF creating failed, captured latex output:
warning: kpathsea: configuration file texmf.cnf not found in these directories: /Users/e/anaconda/bin:/Users/ed/anaconda/bin/share/texmf-local/web2c:/Users/ed/anaconda/bin/share/texmf-dist/web2c:/Users/ed/anaconda/bin/share/texmf/web2c:/Users/ed/anaconda/bin/texmf-local/web2c:/Users/ed/anaconda/bin/texmf-dist/web2c:/Users/ed/anaconda/bin/texmf/web2c:/Users/ed/anaconda:/Users/edefilippis/anaconda/share/texmf-local/web2c:/Users/e/anaconda/share/texmf-dist/web2c:/Users/ed/anaconda/share/texmf/web2c:/Users/ed/anaconda/texmf-
This is XeTeX, Version 3.14159265-2.6-0.99999 (TeX Live 2018) (preloaded format=xelatex)
kpathsea: Running mktexfmt xelatex.fmt
I can't find the format file `xelatex.fmt'!
```
我也将xelatex.fmt放在目录中,但是仍然出现错误。
答案 0 :(得分:5)
根据basictex faq的说法,我不习惯Mac安装路径,我收集了可执行文件应该存放在/usr/local/texlive/bin/x86_64-darwin
中
在终端中运行which xelatex
可能也有助于查找命令的位置,但这仅在目录已在PATH变量中时有效。
如果另一种方法不在您的PATH中,它将在运行find / -name 'xelatex'
,因此您可能会发现它(可能需要一些时间,因为这会搜索整个硬盘)。
找到它并将路径添加到PATH变量后,还应该通过运行来检查jupyter是否具有正确的PATH
import os
print(os.environ['PATH'])
在笔记本中。
答案 1 :(得分:1)
过去在Windows和Linux中使用tensorflow时,我在python中遇到了类似的问题。正如其他人所指出的那样,使用PATH是可行的方法(例如,如果是Linux,则在.bashrc中进行更新),但是我发现下面的代码可以逐个脚本地解决路径问题。
import sys
if "\your\path\to\xelatex" not in sys.path:
print('adding path') # I just add this to know if the path was present or not.
sys.path.append("\your\path\to\xelatex")
基本上会检查PATH以查找您要寻找的内容,然后将其添加(如果缺少)。您甚至可能不需要'if'语句。
也许不是最实用的方法对我来说效果很好,因为我知道所讨论的路径可能是“很少使用”或“一次性使用”的PATH添加...
因此,正如上面的注释所指出的(我想您已经拥有)找到了文件的位置,并使用上述代码添加了该位置。
更多阅读内容: https://docs.python.org/3/tutorial/modules.html 6.2标准模块
答案 2 :(得分:1)
我遇到了同样的问题。正如人们先前所说,问题在于在您的PATH环境变量中找不到xlatex。
一个对我有用的解决方案是在笔记本上运行以下命令:
!export PATH=/Library/TeX/texbin:$PATH
或仅在命令行中:
export PATH=/Library/TeX/texbin:$PATH
然后从命令行(在虚拟环境中,如果有的话)在命令行中运行到pdf的导出,如下所示:
jupyter nbconvert your_notebook.ipynb --to pdf
这应该在运行的同一目录下创建笔记本的pdf。
答案 3 :(得分:0)
如果有可用更新,请尝试更新Jupyter
答案 4 :(得分:0)
为"env": {"PATH":"$PATH"}
中的我添加kernel.json
到您的/opt/anaconda3/share/jupyter/kernels/python3/kernel.json
中。
JupyterLab或Anaconda似乎默认情况下会覆盖系统PATH,如果您设置了该PATH,那么PATH在JupyterLab和您的Shell中将是相同的,因此,如果您安装了任何自定义内容(如xelatex),它将显示在JupyterLab中。
答案 5 :(得分:0)
在 mac 上,您可以使用 homebrew 安装 mactex
,如下所示:brew install --cask mactex
答案 6 :(得分:0)
在您的 jupyter 终端(或您的环境中,如果有的话)运行此命令,关闭所有 jupyter notebook 选项卡并重新打开它,然后将 notebook 转换为 pdf
pip install --upgrade --user nbconvert
答案 7 :(得分:0)
你好!!它起作用了..