使用python包时出错

使用python包时出错

我对 LaTeX 还很陌生。我需要python在 LaTeX 中运行包,但我不能。我在 Windows 7 下使用 MiKTeX 2.9,但程序给了我这个错误:

Latex error: ! I can't find file `bin/**filename**.py.out'.

Latex Error: Emergency stop.<read 2> \ end{python}

答案1

目前python.sty不在 MikTeX 软件包存储库中。您必须手动安装它。

您可以从保存了 Martin R. Ehmsen 编写的 python.sty 原版的人那里下载 python.sty。这 (比特桶) 就是这样一个地方。

然后复制python.sty到您的工作目录。

这个 python.sty 需要一个 python 解释器。您需要在 Windows 上安装一个。然后修改 python.sty 以调用python.exe而不是/usr/bin/python。我无法确认这是否会起作用。

此主题tex.stackexchange.com表明这种修改是可能的,并提供了修改后的适用于 Windows 的 python.sty 版本。

如果一切顺利,您可以将其移动到本地 texmf 树,按照 MikTeX 手册中所述并更新路径数据库。

答案2

有几种方法可以通过 LaTeX 运行 Python。第一个python.sty文件有点过时,我推荐 Noon Silk 的更新版本:github 上的 python.sty

另外还有SympyTeX,它被编写用于将 python sympy 包的输出包含到 LaTeX 文档中,但也可以与纯 python 很好地配合使用。

这两个包都不包含在 CTAN 或 MiKTeX 中。

在这两种情况下,LaTeX 都需要运行你的 Python 可执行文件,因此它必须包含在当前路径中。此外,你还必须允许 LaTeX 运行其他可执行文件,例如通过参数--enable-write18

答案3

Alexander 的回答让我开始思考这个问题。python.sty 文件来自github 上的 python.sty当我将第 61 行从以下内容更改为以下内容时,效果很好:

cat \@pythoninclude\space bin/\jobname.py | python > bin/\jobname.py.out 2> bin/\jobname.py.err

到:

 python \jobname.py > \jobname.py.out 2> \jobname.py.err

如您所见,我还删除了 bin 文件夹。因此,我还将第 63 行从以下内容进行了更改:

\immediate\input bin/\jobname.py.out}

到:

\immediate\input \jobname.py.out}

使用这个.sty 文件并将参数添加到对我有用的-enable-write18命令行中。pdflatex

答案4

我的PythonTeX该软件包处于测试阶段,但在 Windows 下运行良好。它允许快速执行 Python 代码(仅执行修改后的代码,并且代码并行运行)。Python 错误消息与 LaTeX 文档同步以提供正确的行号。此外,可以使用内置的 Pygments 访问来排版代码。

相关内容