Должен ли Python когда-либо падать? - PullRequest
3 голосов
/ 02 октября 2011

Я использую автономную программу Python v3.2.2 / Tkinter в Windows, не вызывая никаких внешних библиотек. Режим простоя очень помог в сообщении об исключениях, и программа была отлажена до такой степени, что ни об одном не сообщается. Однако интерпретатор python иногда дает сбой в недетерминированное время - некоторое время операции выполняются нормально, а затем внезапно зависают. Сбой запускает стандартное диалоговое окно процесса без ответа Windows, спрашивающее, хочу ли я отправить дамп сбоя в Microsoft:

"pythonw.exe has encountered a problem and needs to close.
 We are sorry for the inconvenience."

Отчет о сбоях в Python говорит, что сам интерпретатор редко дает сбой. Мой вопрос: независимо от того, сколько ошибок в скрипте Python, есть ли какой-то способ, который теоретически может привести к сбою интерпретатора? Поскольку об исключениях не сообщается и сбои происходят в случайное время, трудно сузить круг. Но если теоретически предполагается, что интерпретатор защищен от сбоев, то, что я делаю, вызывает ошибку.

Код (демонстрация полосы прокрутки) размещен на Какой лучший виджет для построения графиков в реальном времени для wxPython? . Имеет 3 кнопки - Run, Stop, Reset. Чтобы вызвать сбой, просто нажмите кнопки в случайном порядке в течение минуты или около того. Без взаимодействия демо будет работать вечно без сбоев.

Ответы [ 2 ]

6 голосов
/ 02 октября 2011

Конечно, цель в том, чтобы Python никогда не падал.Увы, мы живем в несовершенном мире.Я думаю, что более полезный вопрос: «Что мне делать в случае сбоя Python?».Если вы хотите помочь создать более совершенный мир, сначала выполните быстрый поиск на системе отслеживания проблем Python , чтобы узнать, была ли уже сообщена и, возможно, устранена похожая проблема в более новой или еще не выпущенной версии Python.,Если нет, посмотрите, сможете ли вы найти способ воспроизвести проблему с четкими указаниями о необходимых шагах, какой платформе и версии ОС, какие версии Python и сторонних библиотек применимы.Затем откройте новый выпуск со всеми деталями.Имейте в виду, что Python, как и многие проекты с открытым исходным кодом, является полностью добровольным проектом, поэтому не может быть никакой гарантии, когда или если проблема будет более глубоко исследована или решена (большинство проблем решаются в конечном итоге), но вы можете быть рады, что высделал свое дело и, вероятно, сэкономил кому-то (может быть, много людей) время и проблемы.Если вам нужны другие мнения перед открытием проблемы, вы можете спросить об этом в списке рассылки python-list / группе новостей .

4 голосов
/ 02 октября 2011

Python действительно не на 100% защищен от сбоев, особенно когда вы используете внешние библиотеки, которыми является TkInter.

Есть даже страница, посвященная этому: http://wiki.python.org/moin/CrashingPython

...