У меня довольно простой сценарий Python:Необъяснимая в 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 также работают нормально. Эта ошибка не дает мне достаточно контекста, чтобы даже знать, где искать. Есть идеи? Даже если вы хотите получить некоторую фактическую информацию об отладке, вам будет по достоинству оценено.
Вы уверены, что это Python segfault, а не программа 'notify-send', которую вы вызываете? Вы пробовали прикладывать заявления 'print', чтобы увидеть, где он сбой? –
Несомненно, 'система' приводит к подпроцессу. Разве это вряд ли приведет к отчуждению родителя? –
Похоже, что это происходит сразу после skype.Attach(). Из ниоткуда я получил это, чтобы выплюнуть это однажды: http://pastebin.com/EHJez3Zm –