我正在为我的实验室运行一个Web服务器,它基本上有一堆我用python编写的用于处理和分析表格数据的脚本
我有一个DigitalOcean droplet,上面部署了一个Laravel应用程序。当我想要运行脚本时,我让用户上传一些数据文件,然后从PHP控制器运行:
shell_exec(python my_script.py arg1 arg2 etc);
问题是,我的开发环境和“生产”环境之间的依赖关系和库存在差异。因此,当我尝试从Web服务器运行脚本时,出现python错误,shell_exec返回的对象就是null。当PHP blade模板尝试解析/获取此对象的数据时,我会遇到如下错误:
在本例中,“matchCount”只是一个存储在python列表中的变量,如下所示:
#Label peptides we found experimentally but do not have an in silico match for... as to predict contaminants
output = {
'sequence': protSeq,
'peptides': pepList,
'observablePeptideCount': str(len(pepList)),
'possibleObserved': possibleObserved,
'matchCount': matchCount,
'coverage': matchSumAA/protSeqAALength*100,
'massList': massList,
'tolerances': tolerances,
}
output = json.dumps(output)
问题是,我知道python脚本在某个地方失败了,但是错误日志没有给出任何原因或位置的指示。是否有某种方法可以让网页输出python错误,以便在生产环境中更正它
有没有更好的方法来完成这一切?谢谢你的帮助
我不建议您在生产过程中打印内容,但如果这是最后的手段,您可以尝试以下方法:
相关问题 更多 >
编程相关推荐