Python脚本挂起异常直到

2024-10-04 01:27:51 发布

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

我在运行RH-Linux和python2.6.6的服务器上运行python脚本有一个问题。当我运行任何脚本并产生异常时,该脚本将挂起,直到我按下CTRL-C,然后它打印回溯信息。当我从命令行运行脚本而不直接调用python时,就会发生这种情况,使用脚本第一行的shebang。如果我通过调用python来执行脚本,就不会出现相同的挂起问题。我搜索过并看到过类似的问题,但它们都与特定的库有关,所有python脚本都会出现这种情况。我尝试过使用相同脚本的不同服务器,但没有出现问题。我已经包括了一个简单的脚本,我一直在测试。它试图打开一个不存在的文件。在

#!/usr/bin/env python
tempfile = open('noexists.txt','r')

当我将代码执行为“测试.py“在命令行上,我得到以下响应:

^{pr2}$

如果我把它作为“python”执行测试.py“然后我得到如下回应:

~/bin$> python test.py
Traceback (most recent call last):
  File "test.py", line 2, in <module>
    tempfile = open('noexists.txt','r')
IOError: [Errno 2] No such file or directory: 'noexists.txt'

这里很难区分,但在执行时非常明显。查看第一个示例输出,注意在回溯之前有“^C”。在我按下CTRL-C之前,脚本一直挂着。第二个示例输出立即返回异常的回溯而不挂起。在

我试着把剧本移到一个新的地方,把shebang从#改为#!/usr/bin/python到#!/usr/bin/env python和不同的脚本。在任何情况下,他们的行为都是一样的。任何帮助都将不胜感激。我不想使用“python”格式调用所有python脚本。在


Tags: 命令行pytest服务器envtxt脚本bin
1条回答
网友
1楼 · 发布于 2024-10-04 01:27:51

多亏了以上建议的帮助,我才找到了解决问题的办法。运行strace之后,我发现代码挂在一个套接字连接上。在搜索相同的套接字连接信息时,我发现另一个已经发布在堆栈溢出上的issue与此类似。然后我发现了第二个也非常相似的issue。两个问题都有相同的建议。显然Python脚本与abrtd服务冲突。建议重启这项服务(abrtd)。重新启动后,Python脚本挂起的问题得到了解决。在

相关问题 更多 >