Я пытаюсь автоматизировать сценарии IPython, используя пакетные файлы и диспетчер задач Windows. После долгих копаний я обнаружил, что вы можете использовать диспетчер задач для запуска BAT и выполнить пакет nbconvert
, чтобы запустить блокнот Jupyter без интерактивных битов.
В BAT мой код сначала " превращает Windows cmd в Anaconda Prompt " с кодом: <anaconda3 path>\Scripts\activate.bat <anaconda3 path>
(Нет формального образования в области КС, так что терпите меня.)
Эта строка позволяет мне запускать команды conda
и jupyter
из Windows cmd. Затем я запускаю
jupyter nbconvert --execute --ExecutePreprocessor.enabled=True --ExecutePreprocessor.timeout=60 <Notebook>
Я получаю сообщение об ошибке тайм-аута, когда это происходит. Да, я мог бы настроить таймер, но прежде чем установить таймер на 10 часов и вернуться утром, я надеюсь получить некоторое представление о том, что происходит за кулисами в nbconvert
, и, возможно, кое-что понять, как получить это работает. Файл .ipynb отлично работает при запуске через Jupyter Notebook. Однако есть момент, когда скрипт пытается загрузить несколько гигабайт данных, что занимает ~ 20 минут каждый раз, когда я запускаю его.
С этой целью - когда nbconvert
задействует препроцессоры, они исполняют весь сценарий превентивно? Я изо всех сил пытаюсь найти причину, почему ничего не открывается, не проверяет, не запускает, не обновляет и т.д. ... при выполнении команды nbconvert
. Я ожидал бы, по крайней мере, увеличения использования оперативной памяти, но, насколько я могу судить, этого тоже не происходит.
Как я могу обойти это и что происходит за кулисами при выполнении nbconvert
?
Traceback:
C:\Users\User>jupyter nbconvert --execute "C:\Users\User\Desktop\_for_Python\CBSA.ipynb"
[NbConvertApp] Converting notebook C:\Users\User\Desktop\_for_Python\CBSA.ipynb to html
[NbConvertApp] Executing notebook with kernel: python3
[NbConvertApp] ERROR | Timeout waiting for execute reply (30s).
Traceback (most recent call last):
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\nbconvert\preprocessors\execute.py", line 423, in _wait_for_reply
msg = self.kc.shell_channel.get_msg(timeout=timeout)
File "C:\Users\User\AppData\Local\Continuum\anaconda3\lib\site-packages\jupyter_client\blocking\channels.py", line 57, in get_msg
raise Empty
_queue.Empty