Блокнот Юпітера не зберігається: аргумент "_xsrf" відсутній у дописі


164

Я запускаю сценарій на ноутбуках 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 або символів '%', як пропонується в іншому дописі.

Дякуємо за будь-яку допомогу!


16
Якщо ви виконуєте пошук, в мережі ведуться дискусії на цю тему. Одна порада, яку я бачив, - це відкрити той самий блокнот у новому вікні браузера, що вирішить проблему. Потім ви можете закрити це нове вікно і продовжити роботу в попередньому.
AlexK

Дякую @AlexK, що вирішує те саме питання на моєму MBP.
RandomWalker

Відповіді:


314

Найпростіший спосіб, який я знайшов, такий:

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

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

Якщо ви вже закрили домашню сторінку Jupyter, ви можете знайти посилання на неї в терміналі, з якого було запущено Jupyter.


23
Це врятувало мій день. Робота на 4 дні була б втрачена, якби я не натрапив на це рішення. Дякую!
Харі Даттада,

14
Мені не потрібно було відкривати новий блокнот. Натомість я знову відкрив дерево і знову підключив ядро. У якийсь момент я також перезапустив ядро.
user650654

1
Мені навіть не дозволили відкрити новий блокнот, поки я не оновив список блокнотів. Після цього я відкрив новий блокнот, і помилка зникла ... ”
Павінду,

2
Зверніть увагу, що для вирішення цього питання потрібно, щоб блокнот був створений раніше, тому відкрийте інший існуючий непрацюючий блокнот, не створюйте новий або відкривайте запущений, обидва з яких можуть спричинити однакову помилку.
mirekphd

5
Ось чому я люблю stackoverflow
Альберт Чен

81

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


3
Це спрацювало для мене, тоді як рішення відкрити інший ноутбук у моєму випадку не вдалося.
DISC-O

Слава богу, я бачу, які дописи я проголосував, тому я знаю, яке рішення використовувати, коли забуду і повернусь через рік.
eric

7

Я користуюся блокнотами jupyter щодня, і ніколи раніше не стикався з цією проблемою ... до сьогодні. У мене ноутбук був відкритий цілий день, але він нічого не запускав, а потім без видимих ​​причин зупинив автоматичне збереження із '_xsrf' argument missing from POSTповідомленням про помилку у верхньому правому куті. FYI - це ноутбук python3.

Я не знаю причину цієї проблеми, але нещодавно я оновив свою версію python3 до версії 3.7.2 і оновив усі мої пакети сайтів до останньої версії станом на кілька днів тому, що, можливо, може бути причиною.

Що стосується рішення, як запропоновано в коментарі @AlexK, я відкрив той самий блокнот у новому вікні (насправді інший браузер), використовуючи

jupyter notebook list

в терміналі, щоб отримати URL-адресу з маркером входу.

Це призвело до того, що я знову відкрив і зберігав блокнот, але інформація, яку я ввів після останнього успішного автоматичного збереження, відсутня. На щастя, мій зламаний екземпляр все ще був відкритим і працював окремо від збереження, тому я зміг просто скопіювати та вставити інформацію, а потім натиснути "Зберегти". Отже, тримайте розбитий екземпляр відкритим, якщо ви спробуєте це!


3

Коли я натискаю кнопку "Зберегти", у ньому є ця помилка. На основі відповідей у ​​цій публікації та інших веб-сайтах я просто знайшов рішення. Мій блокнот jupyter встановлений з pip. Тож я отримую до нього доступ, ввівши "jupyter notebook" у командному рядку Windows.

(1) відкрийте нове вікно команд, а потім відкрийте новий блокнот jupyter. спробуйте зберегти ще раз у старому блокноті, на цей раз помилка "не вдалося: заборонено"

(2) Потім у старому блокноті клацніть «завантажити як», він з’явиться у новому вікні та запитає у вас маркер.

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

(3) відкрийте інше вікно команд, потім відкрийте інший блокнот jupyter, введіть 'jupyter notebook list' скопіюйте код після 'token =' і before :: у поле, яке ви щойно побачили. Ви можете заощадити цей час. Якщо це не вдається, ви можете спробувати інший маркер у списку


Це зробило це для мене, дякую! Просто хотів пояснити останній крок - мені знадобилася хвилина, щоб розшифрувати, що ви мали на увазі. Команда jupyter notebook listвиплюне довгу URL-адресу, частиною якої є довгий рядок символів, що з'являються між token=і ::. Скопіюйте та вставте цей рядок символів у поле "пароль або маркер" із кроку (2), і помилка "заборонена" в оригінальному блокноті jupyter зникне.
Хорхе Ауреліо Менендес

3

Єдиним рішенням, яке працювало для мене, було:

  1. Я відкрив нову вкладку в chrome
  2. Я вставив: http: // localhost: 8888 /? Token = ......
  3. потім я підійшов до свого оригінального блокнота і зміг його зберегти

2

1 вирішення цієї проблеми:

  1. Завантажте блокнот, який ви не можете зберегти, перейшовши: Файл -> Завантажити як -> Блокнот (ipynb).

  2. Відкрийте завантажений блокнот, клацнувши на завантаженому файлі в інтерфейсі браузера jupyter

Тепер ви зможете зберегти (або перейменувати) цей блокнот з інтерфейсу користувача jupyter


Відкриття іншого блокнота не вирішило для мене, але це зробило (тобто завантаження nb)
Алекс,

2

У моєму випадку ця проблема була вирішена натисканням кнопки «Ядро» (показано у верхній частині блокнотів), а потім «Повторне підключення».

Примітка. Додано: У деяких версіях Jupyter не існує функції "Повторне підключення".


1

Я отримав ту саму проблему (неможливо зберегти ні ноутбуки, ні модулі .py), використовуючи зображення в док-версії nvidia. Рішенням було просто відкрити термінал всередині jupyter, не вводячи нічого, окрім виходу після збереження файлів. Це було зроблено в тому ж екземплярі браузера / юпітера.

Машинна ОС: Ubuntu 18.04


0

Відкрийте налаштування розробника, натисніть консоль і введіть наступне

JSON.parse (document.getElementById ('jupyter-config-data'). TextContent) .token

Потім спробуйте зберегти блокнот. Зошит, який раніше не зберігав, збереже зараз.


0

Це найпростіший спосіб.

Мені не потрібно було відкривати новий блокнот. Натомість я знову відкрив дерево і знову підключив ядро. У якийсь момент я також перезапустив ядро. - user650654 9 жовтня '19 о 0:17


В іншому випадку завжди є варіант відповіді "Вікі спільноти"
Double Expresso


0

Відповідь, за якою проголосували найбільше, не працює при використанні лабораторії Юпітера. Однак цей робить. Просто скопіюйте URL-адресу на нову вкладку, замініть «lab» на «дерево» і натисніть Enter, щоб завантажити сторінку. Він згенерує новий маркер csrf для вашого сеансу, і ви готові!

Я б радив увімкнути "Налаштування> Автозбереження документів" за замовчуванням, щоб не турбуватися про втрату роботи в майбутньому. Він економить дуже регулярно, тому все повинно бути в курсі, перш ніж будь-які тайм-аути все одно відбудуться.

Мені не потрібно було відкривати новий блокнот. Натомість я знову відкрив дерево і знову підключив ядро. У якийсь момент я також перезапустив ядро. - user650654 9 жовтня '19 о 0:17


0

У моєму випадку у мене є закрита вкладка Домашня сторінка. Після повторного відкриття Jupyter. Помилка автоматично зникла, і ми можемо зберегти файл.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.