2016-02-26 2 views
1

Я получаю следующее сообщение об ошибке при попытке пнуть ноутбук IPython в:метод регистра отсутствует в faulthandler

File "C:\Python34\lib\site-packages\ipykernel\kernelapp.py", line 326, in patch_io 
    faulthandler_register = faulthandler.register 
AttributeError: 'module' object has no attribute 'register' 

Это под Python 3.4. Глядя в документации на Python Я вижу, что register is a documented method:

faulthandler.register (знаковая, файл = sys.stderr, all_threads = True, цепь = False)

Регистрация сигнала пользователя: установить обработчик для сигнала сигнала , чтобы сбросить трассировку всех потоков или текущего потока , если all_threads False, в файл. Вызов предыдущего обработчика , если цепь имеет значение True.

Однако, глядя в модуль faulthandler, я не вижу способа, перечисленных:

C:\>\Python34\python.exe 
Python 3.4.3 (v3.4.3:9b73f1c3e601, Feb 24 2015, 22:44:40) [MSC v.1600 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import faulthandler 
>>> dir(faulthandler) 
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 
'_fatal_error', '_read_null', '_sigabrt', '_sigfpe', '_sigill', '_sigsegv', 
'cancel_dump_traceback_later', 'disable', 'dump_traceback', 
'dump_traceback_later', 'enable', 'is_enabled'] 

Что я упускаю?

+0

У вас могут быть устаревшие пакеты, попробуйте 'pip install --upgrade jupyter ipython'. – Kupiakos

+0

они совершенно новые установки. Но независимо, я проверял версии. –

ответ

2

Я просто побежал в том же номере (питона 3.5-64, окна, полностью обновлены), вы можете обновить ipykernel до новой версии (>=4.3.1) версии, где это решение:

pip install ipykernel --upgrade

Вы также можете понизить его (до <4.3), но понизить его не рекомендуется.

В ipykernel есть ошибка. 4.3.0. который был введен в течение цикла 4.2.x и затрагивал только пользователей Windows.

Вопрос был заполнен on GitHub, который будет исправлен в 4.3.1, который был выпущен.

+0

И похоже, что обновление отсутствует и решает эту проблему. Благодарю. –

1

Если вы почитаете немного дальше вниз в документации вы цитируемая, вы увидите причину register не доступен для вас:

Не доступен на Windows.

+0

О, дерьмо ... Хорошо поймать! Интересно, поэтому это означает, что сервер ноутбуков iPython не работает под Windows. Я не видел никаких заявлений об этом. –

+0

Это не преднамеренно. Скоро будет выпущена новая версия ipykernel (4.3.1), чтобы исправить это. –