来自Python的Perl脚本调用错误

2024-09-26 17:43:20 发布

您现在位置:Python中文网/ 问答频道 /正文

当cmd是手动运行时,它可以正常工作,但是当从linux上的另一个程序运行时,它会在日志中给我一个错误。任何想法都将不胜感激。谢谢

在日志中检查日志文件时出现此错误。在

[WARNING ] 17:39:20 core:124 [execute] command 'perl /home/josh/scripts/deluge/sorttv.pl' failed with exit code 1
[WARNING ] 17:39:20 core:128 [execute] stderr: Upon execvpe perl /home/josh/scripts/deluge/sorttv.pl ['perl /home/josh/scripts/deluge/sorttv.pl', '176426f007943621q60bc72d3ae333af46a0d502', 'Continuum Season 2', '/home/josh/media/!complete'] in environment id 25326672
:Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/twisted/internet/process.py", line 420, in _fork
executable, args, environment)
File "/usr/lib/python2.7/dist-packages/twisted/internet/process.py", line 466, in _execChild
os.execvpe(executable, args, environment)
File "/usr/lib/python2.7/os.py", line 353, in execvpe
_execvpe(file, args, env)
File "/usr/lib/python2.7/os.py", line 368, in _execvpe
func(file, *argrest)
OSError: [Errno 2] No such file or directory

更新-

现在我得到一个diff错误-

^{pr2}$

Tags: inpyhomelibusr错误linescripts
2条回答

您指示execvpe查找名为perl /home/josh/scripts/deluge/sorttv.pl的可执行文件。你可以想象,它没有找到它。在

您所做的相当于在shell中输入以下内容:

'perl /home/josh/scripts/deluge/sorttv.pl' ...

/home/josh/scripts/deluge/sorttv.pl应作为参数传递。而不是

^{pr2}$

你想要吗

args = ('/home/josh/scripts/deluge/sorttv.pl', ...)
os.execvpe('perl', args, env)

在python中调用函数时,需要将参数与命令分开提供。如您所见,execvpe的第一个参数应该是execvpe,参数/home/josh/scripts/fludge/排序应该是第二个。在

相关问题 更多 >

    热门问题