Máy tính xách tay Jupyter không lưu: Đối số '_xsrf' bị thiếu trong bài đăng


149

Tôi đã chạy một tập lệnh trên máy tính xách tay jupyter trong khoảng 26 giờ; Tôi chưa thực sự sử dụng máy tính của mình cho bất kỳ việc gì khác, nhưng nó cần phải chạy chương trình này và sẽ mất ~ 30 giờ để hoàn thành. Vào khoảng 21 giờ, nó ngừng lưu và thiết bị đầu cuối của tôi có lỗi này:

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

trong đó [file.ipynb] là vị trí của sổ ghi chép jupyter của tôi. Nó cũng nói:

'_xsrf' argument missing from post

lại ở phần trên cùng bên phải của sổ ghi chép. Chương trình vẫn đang chạy và tôi không muốn khởi động lại sổ ghi chép jupyter và phải chạy lại chương trình, vì tôi có thời hạn, tôi có thể làm gì khác không?

Tôi đang sử dụng google chrome, nhưng tôi không có tiện ích mở rộng LastPass hoặc bất kỳ ký tự '%' nào trong mã của mình, như một bài đăng khác đã đề xuất.

Cảm ơn vì bất kì sự giúp đỡ!


15
Có các cuộc thảo luận trực tuyến về chủ đề này nếu bạn thực hiện tìm kiếm. Một gợi ý mà tôi đã thấy là mở cùng một sổ ghi chép trong một cửa sổ trình duyệt mới, cách này sẽ khắc phục được sự cố. Sau đó, bạn có thể đóng cửa sổ mới đó và tiếp tục làm việc trong cửa sổ trước đó.
AlexK

Cảm ơn @AlexK, điều đó giải quyết được vấn đề tương tự trên MBP của tôi.
RandomWalker

Câu trả lời:


275

Cách dễ nhất mà tôi tìm thấy là:

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

Chỉ cần mở một sổ ghi chép khác (không chạy, hiện có) trên cùng một nhân và sự cố đã biến mất một cách kỳ diệu; bạn có thể lưu lại các sổ ghi chép đã hiển thị _xsrflỗi trước đó .

Nếu bạn đã đóng trang chủ của Jupyter, bạn có thể tìm thấy liên kết đến trang này trên thiết bị đầu cuối mà từ đó Jupyter được bắt đầu.


18
Điều này đã cứu ngày của tôi. 4 ngày làm việc đáng lẽ sẽ bị mất, nếu tôi không tìm ra giải pháp này. Cảm ơn bạn!
Hari Dattada

13
Tôi không cần phải mở một cuốn sổ mới. Thay vào đó, tôi mở lại cây và kết nối lại hạt nhân. Tại một số điểm, tôi cũng khởi động lại hạt nhân.
user650654

1
Tôi thậm chí không được phép mở một sổ ghi chép mới cho đến khi tôi làm mới danh sách sổ ghi chép. Sau đó, tôi mở một sổ ghi chép mới và lỗi đã biến
mất..😄

1
Lưu ý rằng giải pháp thay thế yêu cầu sổ ghi chép đã được tạo trước đó, vì vậy hãy mở một sổ ghi chép không chạy hiện có khác, không tạo một sổ ghi chép mới hoặc mở một sổ ghi chép đang chạy, cả hai đều sẽ phát sinh cùng một lỗi.
mirekphd

5
Đây là lý do tại sao tôi thích stackoverflow
Albert Chen

71

Giải pháp tôi đã xem qua có vẻ quá đơn giản nhưng nó đã hoạt động. Truy cập trang chủ / tree hay còn gọi là Jupyter và làm mới trình duyệt. Đã làm việc.


3
Điều này hiệu quả với tôi trong khi giải pháp để mở một sổ ghi chép khác không thành công trong trường hợp của tôi.
DISC-O

Cảm ơn trời đất, tôi có thể xem những bài đăng nào tôi đã bình chọn để tôi biết giải pháp nào sẽ sử dụng khi tôi quên và quay lại sau một năm.
eric

7

Tôi sử dụng sổ ghi chép jupyter hàng ngày và chưa bao giờ gặp vấn đề này trước đây ... cho đến hôm nay. Tôi đã mở sổ ghi chép cả ngày nhưng nó không chạy bất cứ điều gì và sau đó không có lý do rõ ràng đã ngừng tự động lưu với thông '_xsrf' argument missing from POSTbáo lỗi ở trên cùng bên phải. FYI - đây là một sổ ghi chép python3.

Tôi không biết nguyên nhân của sự cố này nhưng gần đây tôi đã nâng cấp phiên bản python3 của mình lên 3.7.2 và nâng cấp tất cả các gói trang web của mình lên phiên bản mới nhất của chúng cách đây vài ngày. Điều này có thể là nguyên nhân.

Đối với một giải pháp, như được đề xuất trong nhận xét của @AlexK, tôi đã mở cùng một sổ ghi chép trong một cửa sổ mới (thực tế là trình duyệt khác), sử dụng

jupyter notebook list

trong thiết bị đầu cuối để lấy URL với mã thông báo đăng nhập.

Điều này dẫn đến việc tôi mở sổ ghi chép và có thể lưu lại được nhưng thông tin tôi đã nhập kể từ lần lưu tự động thành công cuối cùng bị thiếu. Rất may, phiên bản bị hỏng của tôi vẫn mở và hoạt động ngoài việc lưu, vì vậy tôi có thể chỉ cần sao chép và dán thông tin qua đó sau đó nhấn lưu. Vì vậy, hãy giữ phiên bản bị hỏng mở nếu bạn thử điều này!


3

Khi tôi nhấp vào nút 'lưu', nó có lỗi này. Dựa trên câu trả lời trong bài đăng này và các trang web khác, tôi chỉ tìm ra giải pháp. Sổ ghi chép jupyter của tôi được cài đặt từ pip. Vì vậy, tôi truy cập nó bằng cách gõ 'jupyter notebook' vào dòng lệnh windows.

(1) mở một cửa sổ lệnh mới, sau đó mở một sổ ghi chép jupyter mới. cố gắng lưu lại vào sổ cũ, lần này, lỗi là 'fail: Cấm'

(2) Sau đó, trong sổ tay cũ, nhấp vào 'tải xuống dưới dạng', nó sẽ bật ra một cửa sổ mới hỏi bạn mã thông báo.

nhập mô tả hình ảnh ở đây

(3) mở một cửa sổ lệnh khác, sau đó mở một sổ ghi chép jupyter khác, nhập 'danh sách sổ ghi chép jupyter', sao chép mã sau 'token =' và trước :: vào hộp bạn vừa thấy. Bạn có thể tiết kiệm thời gian này. Nếu không thành công, bạn có thể thử một mã thông báo khác trong danh sách


Điều này đã làm điều đó cho tôi, cảm ơn! Tôi chỉ muốn làm rõ bước cuối cùng - tôi đã mất một phút để giải mã ý bạn. Lệnh jupyter notebook listsẽ tạo ra một url dài, một phần của nó là một chuỗi dài các ký tự xuất hiện ở giữa token=::. Sao chép và dán chuỗi ký tự này vào hộp "mật khẩu hoặc mã thông báo" từ bước (2) và lỗi "bị cấm" trong sổ ghi chép jupyter ban đầu sẽ biến mất.
Jorge Aurelio Menendez

2

1 giải pháp để giải quyết vấn đề này là:

  1. Tải xuống sổ tay mà bạn không thể lưu bằng cách đi tới: Tệp -> Tải xuống dưới dạng -> Máy tính xách tay (ipynb).

  2. Mở sổ tay đã tải xuống bằng cách nhấp vào tệp đã tải xuống trên giao diện người dùng của trình duyệt jupyter

Bây giờ, bạn có thể lưu (hoặc đổi tên) sổ tay này từ giao diện người dùng jupyter


Mở một sổ ghi chép khác không giải quyết được nó cho tôi, nhưng điều này đã giải quyết được (tức là tải xuống nb)
Alex

2

Giải pháp duy nhất phù hợp với tôi là:

  1. Tôi đã mở một tab mới trong chrome
  2. Tôi đã dán: http: // localhost: 8888 /? Token = ......
  3. sau đó tôi chuyển đến sổ ghi chép ban đầu của mình và tôi có thể lưu nó

1

Tôi gặp vấn đề tương tự (không thể lưu máy tính xách tay và mô-đun .py) bằng cách sử dụng một hình ảnh trong bộ dock nvidia. Giải pháp chỉ là mở một thiết bị đầu cuối bên trong jupyter mà không cần nhập bất cứ thứ gì ngoài việc thoát ra sau khi các tệp được lưu. Nó đã được thực hiện trong cùng một phiên bản trình duyệt / jupyter.

Hệ điều hành máy: Ubuntu 18.04


1

Trong trường hợp của tôi, vấn đề này đã được giải quyết bằng cách nhấp vào 'Kernel' (hiển thị trên đầu sổ ghi chép) và sau đó 'Kết nối lại'.


0

Mở cài đặt dành cho nhà phát triển và nhấp vào bảng điều khiển và nhập nội dung sau

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

Sau đó, hãy thử lưu Notebook. Sổ ghi chép không được lưu trước đó sẽ lưu ngay bây giờ.


0

Đây là cách dễ dàng nhất.

Tôi không cần phải mở một cuốn sổ mới. Thay vào đó, tôi mở lại cây và kết nối lại hạt nhân. Tại một số điểm, tôi cũng khởi động lại hạt nhân. - user650654 Ngày 9 tháng 10 '19 lúc 0:17


Nếu không, luôn có tùy chọn trả lời "Community wiki"
Vega

0

Tôi đã có thể giải quyết vấn đề này bằng cách nhấp vào trình đơn thả xuống "Kernel" và chọn "Ngắt."


-1

Câu trả lời được bình chọn nhiều nhất dường như không hoạt động khi sử dụng Jupyter Lab. Điều này không, tuy nhiên. Chỉ cần sao chép url vào một tab mới, thay thế 'lab' bằng 'tree' và nhấn enter để tải trang. Nó sẽ tạo mã thông báo csrf mới cho phiên của bạn và bạn đã sẵn sàng!

Tôi khuyên bạn nên bật Cài đặt> Tự động lưu Tài liệu theo mặc định để tránh lo lắng về việc mất công việc trong tương lai. Nó lưu rất thường xuyên, vì vậy mọi thứ nên được cập nhật trước khi bất kỳ thời gian chờ nào xảy ra.

Tôi không cần phải mở một cuốn sổ mới. Thay vào đó, tôi mở lại cây và kết nối lại hạt nhân. Tại một số điểm, tôi cũng khởi động lại hạt nhân. - user650654 Ngày 9 tháng 10 '19 lúc 0:17

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.