Сбросить ядро ​​ipython

Мне было интересно, есть ли способ перезапустить ядро ​​ipython, не закрывая его, например, функцию перезапуска ядра, которая существует в ноутбуке. Я попробовал %reset но, похоже, не очищает импорт.

    5 Solutions collect form web for “Сбросить ядро ​​ipython”

    Несмотря на то, что было бы удобно, если бы %reset очистил пространство имен и кеш для импорта (как в записной книжке), можно явно перезагрузить ранее импортированный модуль, используя importlib.reload в python3.4 или imp.reload в python3.0- 3.3 (и при необходимости перезагрузите ядро ​​на втором шаге).

    В консоли qt вы можете нажать ctrl-

    Я могу перезапустить ядро, но некоторые сеансы консоли требуют больше времени для повторного подключения. Ноутбук мгновенно обнаруживает перезагрузку ядра.

    Класс ipykernel.ipkernel.IPythonKernel имеет метод do_shutdown с параметром restart который по умолчанию имеет значение False .

    Получите ссылку на ipykernel.kernelapp.IPKernelApp который имеет ссылку на ядро ​​и вызывает do_shutdown ядра, передав True .

     import IPython app = IPython.Application.instance() app.kernel.do_shutdown(True) 

    Как я проверил?

     $ #start notebook $ jupyter notebook $ #connect to existing kernel $ jupyter console --existing 

    IPython Qt-консоль имеет функцию сброса ядра. Вы можете использовать это, если используете IPython Qt. ИМО это лучше, чем использование из оболочки.

    введите описание изображения здесь

    От https://github.com/jupyter/notebook/blob/f19d68a33193dff07e62f11da0ebce331e8acbda/notebook/services/kernels/handlers.py#L75 :

     class KernelActionHandler(APIHandler): @web.authenticated @json_errors @gen.coroutine def post(self, kernel_id, action): km = self.kernel_manager if action == 'interrupt': km.interrupt_kernel(kernel_id) self.set_status(204) if action == 'restart': try: yield gen.maybe_future(km.restart_kernel(kernel_id)) except Exception as e: self.log.error("Exception restarting kernel", exc_info=True) self.set_status(500) else: model = km.kernel_model(kernel_id) self.write(json.dumps(model)) self.finish() 
    Python - лучший язык программирования в мире.