Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/300.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用latex和嵌入式python代码编译问题_Python_Latex_Pdflatex - Fatal编程技术网

使用latex和嵌入式python代码编译问题

使用latex和嵌入式python代码编译问题,python,latex,pdflatex,Python,Latex,Pdflatex,我将Ubuntu服务器与Python2.7和LaTeX一起使用,我尝试使用shell命令pdflatex test.tex编译此LaTeX代码 \documentclass{article} \usepackage{python} \begin{document} \begin{python} print "Hello World" \end{python} \end{document} 这很简单,因为这是我第一次尝试将两者结合在一起,但我收到以下错误消息

我将Ubuntu服务器与Python2.7和LaTeX一起使用,我尝试使用shell命令pdflatex test.tex编译此LaTeX代码

\documentclass{article}

\usepackage{python}

\begin{document}

     \begin{python}
     print "Hello World"
     \end{python}

\end{document}
这很简单,因为这是我第一次尝试将两者结合在一起,但我收到以下错误消息:

(/usr/share/texmf/tex/latex/python/python.sty

Package: python 2007/06/07 v0.21 Python in LaTeX
\@out=\write3
\@module=\write4
) (./test.aux)

! I can't write on file `test.aux'.

\document ...ate \openout \@mainaux \jobname .aux          
\immediate \write \@mainau...
l.5 \begin{document}                   

(Press Enter to retry, or Control-D to exit; default file extension is `.tex')
Please type another output file name: 
! Emergency stop.
\document ...ate \openout \@mainaux \jobname .aux      

这可能是许可问题还是其他问题

错误消息是为了您的利益而存在的

! I can't write on file `test.aux'.
意味着LaTex正在尝试将某些内容写入文件“test.aux”,但无法写入。最可能的原因是文件被锁定,因为您在其他位置打开了它


您应该能够通过尝试删除该文件来检查这一点。一旦你打开它,你应该是好的;最坏的情况是重新启动。

错误消息会为您带来好处

! I can't write on file `test.aux'.
意味着LaTex正在尝试将某些内容写入文件“test.aux”,但无法写入。最可能的原因是文件被锁定,因为您在其他位置打开了它


您应该能够通过尝试删除该文件来检查这一点。一旦你打开它,你应该是好的;最坏的情况是重新启动。

我没有任何有关LaTeX包的经验,但从我所能看出,它将尝试执行python代码段并包含输出。尝试从python段中删除前导空格:

\begin{python}
print "Hello World!"
\end{python}
而不是:

     \begin{python}
     print "Hello World!"
     \end{python}
额外的前导空格将导致python解释器抛出一个
IndentationError
,这可能是使python.sty混淆的原因。粗略地看一下,我相信它将实现以下shell命令的功能:

prompt$ echo '     print "Hello World!"' > test.py
prompt$ cat test.py | python > test.py.out 2> test.py.err
然后,它将执行test.py.out的逐字包含,它将为空。标准错误输出将包含以下内容:

File "<stdin>", line 1
  print "Hello World!"
  ^
IndentationError: unexpected indent
文件“”,第1行
打印“你好,世界!”
^
缩进错误:意外缩进

sty文件中提到,他不应该忽略标准错误输出。我有一种感觉,如果
python
解释器退出失败,那么输出永远不会由LaTeX生成,但我可能是错的。

我对所讨论的LaTeX包没有任何经验,但据我所知,它将尝试执行python代码段并包含输出。尝试从python段中删除前导空格:

\begin{python}
print "Hello World!"
\end{python}
而不是:

     \begin{python}
     print "Hello World!"
     \end{python}
额外的前导空格将导致python解释器抛出一个
IndentationError
,这可能是使python.sty混淆的原因。粗略地看一下,我相信它将实现以下shell命令的功能:

prompt$ echo '     print "Hello World!"' > test.py
prompt$ cat test.py | python > test.py.out 2> test.py.err
然后,它将执行test.py.out的逐字包含,它将为空。标准错误输出将包含以下内容:

File "<stdin>", line 1
  print "Hello World!"
  ^
IndentationError: unexpected indent
文件“”,第1行
打印“你好,世界!”
^
缩进错误:意外缩进

sty文件中提到,他不应该忽略标准错误输出。我有一种感觉,如果python解释器退出失败,那么LaTeX永远不会生成输出,但我可能是错的。

我重新启动了系统,如果试图删除文件,ubuntu会告诉我它是一个写保护的常规文件。我用chmod 777更改了文件的权限:test.aux、test.log、test.py和latex.py。现在错误消息是:我找不到文件test.py.out。但是没有这样的文件。我已经重新启动了系统,如果试图删除这个文件,ubuntu会告诉我它是一个写保护的常规文件。我用chmod 777更改了文件的权限:test.aux、test.log、test.py和latex.py。现在错误消息是:我找不到文件test.py.out。但是没有这样的档案。非常感谢。现在我对这个过程有了更好的理解,而且它是按照你所描述的方式运作的。如果我手动创建文件test.py.out,并在其中写入一些文本,它就会工作。但这不是解决方案,因为文件和内容必须自动创建。您是否尝试删除LaTeX文档中的前导空格?这可能是问题的根源。我发现了问题。问题不在于空格。我又读了python.sty。上面写着“注意:这项工作需要激活shell escape。[…]在texmf.cnf中添加/更改'shell_escape=t'。我改变了它,瞧,它起作用了。谢谢你的讨论和灵感。非常感谢。现在我对这个过程有了更好的理解,而且它是按照你所描述的方式运作的。如果我手动创建文件test.py.out,并在其中写入一些文本,它就会工作。但这不是解决方案,因为文件和内容必须自动创建。您是否尝试删除LaTeX文档中的前导空格?这可能是问题的根源。我发现了问题。问题不在于空格。我又读了python.sty。上面写着“注意:这项工作需要激活shell escape。[…]在texmf.cnf中添加/更改'shell_escape=t'。我改变了它,瞧,它起作用了。谢谢你的讨论和灵感。