我有一个相当简单的 Python 脚本:
import Skype4Py
from random import randint
from time import strftime, sleep
from os import system
interval = 5
def pickStatus():
try:
handler = open("lines.txt", "r")
lines = handler.read().split("\n")
handler.close()
rand = randint(0, len(lines))
line = lines[rand]
print strftime("%Y-%m-%d %I:%M %p [" + str(rand) + "] ") + line
system('notify-send "New status" "' + line + '"')
skype.CurrentUserProfile.MoodText = line
sleep(interval * 60)
pickStatus()
except KeyboardInterrupt:
pass
if __name__ == '__main__':
skype = Skype4Py.Skype()
skype.Attach()
pickStatus()
当我运行它时,有时得到这个:
~$ python RandomStatus.py
Segmentation fault
~$
不过,在其他时候,脚本运行得很好。我所有其他的 Python 脚本也能正常工作。这个错误并没有真正给我足够的上下文,甚至不知道去哪里看。有任何想法吗?即使只是获取一些实际调试信息的方法也会受到赞赏。
请您参考如下方法:
我在使用 Skype4Py 时遇到了类似的问题,至少就我而言,事实证明 Skype4Py 无法在 Mac 上使用 64 位 Python。但可能不适用于您,因为您的脚本有时会起作用。
如果您使用的是 Mac,请参阅 Ned Deily 在这个问题中关于如何运行 32 位 Python 的评论:How do I force Python to be 32-bit on Snow Leopard and other 32-bit/64-bit questions
在写完上面的几个小时后,我在 Linux 上遇到了类似的间歇性段错误。在这种情况下,当我使用 X11 而不是 DBUS 连接时,段错误消失了
Skype4Py.Skype(Transport='x11')
