我正在Python语言中使用Bottle开发一个微服务,其中我需要使用.tex文件生成一个PDF。我使用子进程来生成PDF,但我一次又一次地收到相同的错误:
Traceback (most recent call last):
File "/Users/casa/Desktop/tesisform/bottle.py", line 763, in _handle
return route.call(**args)
File "/Users/casa/Desktop/tesisform/bottle.py", line 1577, in wrapper
rv = callback(*a, **ka)
File "tesis.py", line 114, in tesis_form
subprocess.check_call(["./runtex", texfname])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 540, in check_call
raise CalledProcessError(retcode, cmd)
CalledProcessError: Command '['./runtex', u'111111']' returned non-zero exit status 127我已经尝试了针对Stackverflow中相同错误找到的所有解决方案,但似乎都不能解决我的问题。我的代码如下
@route('/pdf')
def tesis_form():
actn = request.query.actn
fname = "actas/"+actn + ".json"
with open(fname,"r") as f:
data = json.load(f)
tex = template('tesis-evaluation-tex', data)
tex = tex.encode('utf-8')
texfname = "%s" % (actn)
with open("tmp/"+actn+".tex","w") as f:
f.write(tex)
subprocess.check_call(["./runtex", texfname])
return static_file(actn+".pdf", root='tmp')这是我的runtex文件
echo $1
cd tmp
pdflatex $1任何帮助都将不胜感激
发布于 2018-09-05 05:40:50
在我工作的计算机上,我没有LaTeX发行版。它返回错误127,因为runtex中的pdflatex命令不起作用。i.e
bash: pdflatex: command not found安装了MacTeX,现在一切都很顺利!
发布于 2018-09-05 05:27:14
问题出在你的外部脚本'runtex',而不是你的Python代码。它返回状态127;非零状态通常表示错误,并且您已经要求子进程在非零状态下抛出异常(通过使用check_call),因此它就抛出了异常。
127通常表示“没有找到命令”,所以这里可能就是这种情况(尽管程序可能会因为它自己的原因而返回127 )。
如果这就是runtex中的全部内容,那么您可能应该:
#!/bin/sh作为第一行chmod +x runtex)脚本的退出状态是最后一个命令的退出状态,因此似乎在路径中找不到pdflatex。确保它已安装在程序环境中的$PATH上!
https://stackoverflow.com/questions/52174019
复制相似问题