Python Infinite While Loop аварийно завершает работу Mac

У меня есть скрипт python с циклом, например

while True:
    #do something here

Всякий раз, когда я запускаю его, он крашит Mac. Mac работает под управлением Mac OS X 10.6.5 и python 2.6.1.


person giodamelio    schedule 27.11.2010    source источник
comment
@giodamelio: у меня точно такая же спецификация, за исключением того, что я использую дистрибутив macport python, и у меня он не падает. Возможно, то, что вы делаете внутри цикла, приводит к его сбою. Можете ли вы опубликовать отчет о сбое/код, который вы выполняете внутри цикла while.   -  person pyfunc    schedule 27.11.2010
comment
Приводит ли это к панике ядра или зависанию графического интерфейса?   -  person SingleNegationElimination    schedule 27.11.2010
comment
@pyfunc Я проверил это с помощью простой команды печати, поэтому не думаю, что это может быть так.   -  person giodamelio    schedule 27.11.2010
comment
Я думал, что Маки могут закончить бесконечные циклы за пять секунд?   -  person Chris Morgan    schedule 27.11.2010
comment
Что такое крах? Что такое сообщение об ошибке? Это что-то вроде Segmentation fault (core dumped) или что-то вроде Traceback (most recent call last): File <file>, line #, in <module>?   -  person Adam Rosenfield    schedule 27.11.2010
comment
@giodamelio: эээ.. какой из них, вы получаете сообщение в верхней части экрана о панике ядра и кучу другого странного текста?   -  person SingleNegationElimination    schedule 27.11.2010
comment
Сбой @Adam Rosenfield, когда компьютер зависает, и мне приходится перезагружаться, чтобы он снова заработал.   -  person giodamelio    schedule 27.11.2010


Ответы (3)


Если вы можете написать любой бесконечный цикл, и это вызывает сбой, то у вас проблема либо с вашей ОС, либо с вашим Python (поскольку обычно это не вызывает сбоя). Попробуйте дистрибутив Python MacPorts, и, надеюсь, у вас не возникнет таких проблем.

person Rafe Kettler    schedule 27.11.2010

Возможно, ваш компьютер перегревается, когда вы слишком долго позволяете ему работать на 100% ЦП. Тогда решением будет убедиться, что вентилятор на вашем процессоре работает, или установить его получше.

person sth    schedule 27.11.2010

Поскольку вы говорите Python 2.6.1 с OS X 10.6, я предполагаю, что вы используете Python 2.6, поставляемый Apple. Если ваша машина поддерживает 64-разрядную версию, этот Python по умолчанию будет работать в 64-разрядном режиме, что может повлиять на проблемы, связанные со стеком. Вы можете попробовать запустить в 32-битном режиме и посмотреть, произойдет ли то же самое; вы можете сделать это, вызвав Python следующим образом:

$ arch -i386 /usr/bin/python2.6

Вы также можете попробовать установить самую последнюю версию Python 2.6 (2.6.6) с помощью установщика python.org для OS X здесь. Примечание: этот Python только 32-битный. (Кстати, Python 2.7 сейчас актуален. Если вы можете воспроизвести проблему с ним, вы должны открыть вопрос на Python средство отслеживания ошибок.)

person Ned Deily    schedule 27.11.2010