首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python - CalledProcessError:命令'[...]‘返回非零退出状态127

Python - CalledProcessError:命令'[...]‘返回非零退出状态127
EN

Stack Overflow用户
提问于 2018-09-05 05:08:39
回答 2查看 13.2K关注 0票数 5

我正在Python语言中使用Bottle开发一个微服务,其中我需要使用.tex文件生成一个PDF。我使用子进程来生成PDF,但我一次又一次地收到相同的错误:

代码语言:javascript
运行
复制
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中相同错误找到的所有解决方案,但似乎都不能解决我的问题。我的代码如下

代码语言:javascript
运行
复制
@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文件

代码语言:javascript
运行
复制
echo $1
cd tmp
pdflatex $1

任何帮助都将不胜感激

EN

Stack Overflow用户

发布于 2018-09-05 05:27:14

问题出在你的外部脚本'runtex',而不是你的Python代码。它返回状态127;非零状态通常表示错误,并且您已经要求子进程在非零状态下抛出异常(通过使用check_call),因此它就抛出了异常。

127通常表示“没有找到命令”,所以这里可能就是这种情况(尽管程序可能会因为它自己的原因而返回127 )。

如果这就是runtex中的全部内容,那么您可能应该:

  • 添加一行:#!/bin/sh作为第一行
  • 确保它具有execute权限(chmod +x runtex)

脚本的退出状态是最后一个命令的退出状态,因此似乎在路径中找不到pdflatex。确保它已安装在程序环境中的$PATH上!

票数 4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52174019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档