我在运行一个Python脚本时遇到了问题,这个脚本是在运行RH Linux并搭载Python 2.6.6的服务器上运行的。当我的脚本产生异常时,它会挂起,直到我按下CTRL-C才会打印traceback信息。如果我从命令行直接运行脚本而不直接调用python,则会出现这种情况,并在脚本第一行利用shebang进行调用。但如果我通过调用python执行该脚本,则不会出现这样的挂起问题。我已经搜索到类似的问题,但它们都与特定库有关,其中所有Python脚本都会出现此问题。我曾尝试在另一台服务器上使用相同的脚本,但没有遇到这个问题。我已包含了一个简单的测试脚本,它试图打开一个不存在的文件。
当我在命令行上执行名为“test.py”的代码时,我会得到以下响应:
如果我执行“python test.py”,则会得到以下响应:
这里很难看出区别,但是执行时很明显。请注意第一个样本输出,在 Traceback 之前有 "^C"。直到我按下 CTRL-C,脚本才会一直挂起。第二个样本输出立即返回异常的 traceback,而不会挂起。
我尝试将脚本移动到新位置、将 shebang 从 #!/usr/bin/python 修改为 #!/usr/bin/env python 以及尝试不同的脚本。在所有情况下它们的行为都是相同的。非常感谢您的帮助。我不想使用 "python" 格式来调用所有的 python 脚本。
#!/usr/bin/env python
tempfile = open('noexists.txt','r')
当我在命令行上执行名为“test.py”的代码时,我会得到以下响应:
~/bin$> test.py
^CTraceback (most recent call last):
File "/export/home/jwd3/bin/test.py", line 2, in <module>
tempfile = open('noexists.txt','r')
IOError: [Errno 2] No such file or directory: 'noexists.txt'
如果我执行“python test.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'
这里很难看出区别,但是执行时很明显。请注意第一个样本输出,在 Traceback 之前有 "^C"。直到我按下 CTRL-C,脚本才会一直挂起。第二个样本输出立即返回异常的 traceback,而不会挂起。
我尝试将脚本移动到新位置、将 shebang 从 #!/usr/bin/python 修改为 #!/usr/bin/env python 以及尝试不同的脚本。在所有情况下它们的行为都是相同的。非常感谢您的帮助。我不想使用 "python" 格式来调用所有的 python 脚本。