Блокнот Jupyter не сохраняется: аргумент '_xsrf' отсутствует в записи

Я работал над сценариями на ноутбуках Jupyter около 26 часов; Я на самом деле не использовал свой компьютер ни для чего другого, но ему нужно запустить эту программу, которая займет ~ 30 часов. Приблизительно в 21 час он прекратил сохранение, и мой терминал имел это:

403 PUT /api/contents/[file.ipynb] (::1): '_xsrf' argument missing from POST

где [file.ipynb] - это местоположение моей записной книжки Jupyter. Это также говорит:

'_xsrf' argument missing from post

в верхней правой части ноутбука снова. Программа все еще работает, и я не хочу перезапускать ноутбук jupyter, и мне приходится снова запускать программу, так как у меня есть крайний срок, могу ли я что-нибудь еще сделать?

Я использую Google Chrome, но у меня нет расширения LastPass или каких-либо символов "%" в моем коде, как предложено в другом посте.

Спасибо за любую помощь!

Ответ 1

Извините, это, вероятно, приходит слишком поздно, если говорить о вашем крайнем сроке... Самый простой способ, который я нашел, это:

https://github.com/nteract/hydrogen/issues/922#issuecomment-405456346

Просто откройте другой блокнот в том же ядре, и проблема волшебным образом исчезнет; Вы можете снова сохранить записные книжки, в которых ранее отображалась ошибка _xsrf.

Если вы уже закрыли домашнюю страницу Jupyter, вы можете найти ссылку на нее в терминале, с которого был запущен Jupyter.

Ответ 2

Я пользуюсь ноутбуками Jupyter ежедневно и никогда раньше не сталкивался с этой проблемой... до сегодняшнего дня. У меня весь день была открытая тетрадь, но она ничего не работала, а затем по непонятным причинам прекратил автосохранение с '_xsrf' argument missing from POST сообщении об ошибке '_xsrf' argument missing from POST в правом верхнем углу. К вашему сведению - это ноутбук на python3.

Я не знаю причину этой проблемы, но недавно я обновил свою версию python3 до 3.7.2 и обновил все мои пакеты сайтов до последней версии, которая могла быть причиной несколько дней назад.

Что касается решения, как предложено в комментарии @AlexK, я открыл ту же записную книжку в новом окне (на самом деле другой браузер), используя

jupyter notebook list

в терминале получить URL с токеном логина.

Это привело к тому, что я снова открыл и сохранил блокнот, но информация, которую я вводил с момента последнего успешного автосохранения, отсутствовала. К счастью, мой неработающий экземпляр все еще был открыт и работал помимо сохранения, поэтому я смог просто скопировать и вставить информацию, а затем нажать "Сохранить". Так что держите сломанный экземпляр открытым, если вы попробуете это!

Ответ 3

Когда я нажимаю кнопку "Сохранить", появляется эта ошибка. Основываясь на ответах в этом посте и других сайтах, я просто нашел решение. Мой ноутбук Jupyter установлен из пипса. Поэтому я получаю к нему доступ, набирая "jupyter notebook" в командной строке Windows.

(1) откройте новое командное окно, затем откройте новую записную книжку Jupyter. попробуйте снова сохранить в старой записной книжке, на этот раз ошибка "сбой: запрещено"

(2) Затем в старой записной книжке нажмите "загрузить как", появится новое окно с запросом токена.

enter image description here

(3) откройте другое командное окно, затем откройте другую записную книжку jupyter, введите "список записных книжек jupyter", скопируйте код после "token =" и перед :: в поле, которое вы только что увидели. Вы можете сэкономить это время. Если это не удалось, вы можете попробовать другой токен в списке

Ответ 4

Решение, с которым я столкнулся, кажется слишком простым, но оно сработало. Перейдите на домашнюю страницу /tree aka Jupyter и обновите браузер. Работал.

Ответ 5

1 обходной путь для решения этой проблемы:

  1. Загрузите записную книжку, которую вы не можете сохранить, перейдя в: Файл → Загрузить как → Записная книжка (ipynb).

  2. Откройте загруженную записную книжку, щелкнув загруженный файл в интерфейсе браузера jupyter.

Теперь вы сможете сохранить (или переименовать) этот блокнот из пользовательского интерфейса jupyter.

Ответ 6

У меня возникла та же проблема (невозможно сохранить ни записные книжки, ни модули .py) с помощью образа в докере nvidia. Решением было просто открыть терминал внутри jupyter, ничего не печатая, а завершить работу после сохранения файлов. Это было сделано в том же экземпляре браузера /Jupyter.

ОС ОС: Ubuntu 18.04