Làm cách nào tôi có thể chia sẻ sổ ghi chép Jupyter với người không lập trình? [đóng cửa]


167

Tôi đang cố gắng che giấu những gì tôi có thể / không thể làm với Jupyter.

Tôi có một máy chủ Jupyter chạy trên máy chủ nội bộ của chúng tôi, có thể truy cập thông qua VPN và mật khẩu được bảo vệ.

Tôi là người duy nhất thực sự tạo ra sổ ghi chép nhưng tôi muốn làm cho một số sổ ghi chép hiển thị cho các thành viên khác trong nhóm theo cách chỉ đọc. Lý tưởng nhất là tôi có thể chia sẻ một URL với họ rằng họ sẽ đánh dấu khi họ muốn xem sổ ghi chép với dữ liệu được làm mới.

Tôi thấy các tùy chọn xuất nhưng không thể tìm thấy bất kỳ đề cập nào về "xuất bản" hoặc "công khai" sổ ghi chép trực tiếp cục bộ. Điều này là không thể? Có lẽ đó chỉ là một cách sai lầm khi nghĩ về cách sử dụng Jupyter?


5
Có vẻ như bạn chỉ có thể đặt các .ipynbtệp trên GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe

4
Nhưng để giữ riêng tư, chúng tôi sẽ phải trả tiền cho các tài khoản.
xav

Vì vậy, bạn không muốn họ hoàn toàn công khai? Nếu chỉ đến người dân địa phương, tại sao họ không thể truy cập máy chủ?
jonrsharpe

2
Xin lỗi nếu nó không rõ ràng. Tôi muốn phân phát sổ ghi chép trên máy chủ (chỉ nhóm mới có thể nhìn thấy) nhưng nếu có thể tôi muốn tránh cho họ mật khẩu của phiên bản Jupyter hoặc bất kỳ cách truy cập nào khác với quyền chỉnh sửa.
xav

4
có lẽ bạn chỉ cần tạo một ý chính bí mật ( gist.github.com ) "Các ý chính bí mật được ẩn khỏi các công cụ tìm kiếm nhưng hiển thị cho bất kỳ ai bạn cung cấp URL." một thậm chí không có tài khoản github. Nhanh.
tagoma

Câu trả lời:


78

Cách "tốt nhất" để chia sẻ sổ ghi chép Jupyter là chỉ cần đặt nó trên GitHub (và xem trực tiếp) hoặc một số liên kết công khai khác và sử dụng Trình xem sổ ghi chép Jupyter . Khi quyền riêng tư là một vấn đề thì sẽ có những lựa chọn thay thế nhưng chắc chắn nó phức tạp hơn; không có cách tích hợp nào để làm điều này trong Jupyter một mình, nhưng một vài lựa chọn là:

Lưu trữ nbviewer của riêng bạn

Cả GitHub và Jupyter Notebook Veiwer đều sử dụng cùng một công cụ để kết xuất .ipynbcác tệp thành HTML tĩnh, công cụ này là nbviewer .

Các hướng dẫn cài đặt phức tạp hơn tôi sẵn sàng vào đây nhưng nếu công ty / nhóm của bạn có máy chủ dùng chung không yêu cầu truy cập mật khẩu thì bạn có thể lưu trữ nbviewer trên máy chủ đó và hướng nó tải từ máy chủ được ủy nhiệm của bạn . Điều này có thể sẽ yêu cầu một số cấu hình nâng cao hơn so với bạn sẽ tìm thấy trong các tài liệu.

Thiết lập một kịch bản triển khai

Nếu bạn không nhất thiết cần cập nhật HTML trực tiếp thì bạn có thể thiết lập tập lệnh trên máy chủ được ủy quyền của mình, đơn giản sẽ sử dụng các tùy chọn xuất có sẵn của Jupyter để tạo tệp HTML tĩnh và sau đó gửi chúng đến máy chủ có thể truy cập công khai hơn.


Bạn cũng có thể truy cập nbviewer trực tiếp trên nbviewer.jupyter.org và thêm vào đó tệp của bạn
guhur

Các Jupyter Notebook Viewer sẽ làm cho máy tính xách tay tĩnh trong GIST quá, sparing bạn khỏi cần một GitHub repo full-fledged.
Wayne

Lưu ý "thêm vào đó tệp của bạn" không bao gồm tải lên bằng hộp thoại web cho phép bạn chọn tệp cục bộ từ hệ thống tệp trình duyệt.
lucid_dreamer ngày

29

Google gần đây đã công khai dự án Cộng tác nội bộ của mình ( liên kết tại đây ). Bạn có thể bắt đầu sổ ghi chép theo cách tương tự như bắt đầu Google Sheet hoặc Google Doc, sau đó chỉ cần chia sẻ sổ ghi chép hoặc thêm cộng tác viên ..

Hiện tại, đây là cách dễ nhất đối với tôi.


1
Tôi đã rất ngạc nhiên khi thấy cách sử dụng Colaboratory trực quan và dễ dàng. Lưu ý rằng bạn chỉ có thể chia sẻ liên kết dưới dạng xem nhưng khách truy cập có thể bật chế độ "sân chơi" để chạy các khối mã và điều chỉnh các tham số. rất tuyệt.
Timothy Lombard

Các phím tắt đều bị hỏng trong colab.
mathtick

Bạn có thể bắt đầu ở đây: giới thiệu Google
colab

24

Đề xuất của Michael về việc chạy phiên bản nbviewer của riêng bạn là một ứng dụng hay mà tôi đã sử dụng trước đây với máy chủ Enterprise Github.

Một cách khác nhẹ nhàng là có một ô ở cuối sổ ghi chép của bạn thực hiện lệnh gọi shell tới nbconvert để nó tự động được làm mới sau khi chạy toàn bộ:

!ipython nbconvert <notebook name>.ipynb --to html

EDIT : Với Big Split của Jupyter / IPython, có lẽ bạn sẽ muốn thay đổi điều này thành !jupyter nbconvert <notebook name>.ipynb --to htmlbây giờ.


12

Nó phụ thuộc vào những gì bạn định làm với Notebook: bạn có muốn người dùng có thể tính toán lại kết quả hay chỉ chơi với chúng?

Máy tính xách tay tĩnh

NBViewer là một công cụ tuyệt vời. Bạn có thể trực tiếp sử dụng nó bên trong Jupyter . Github cũng có kết xuất, vì vậy bạn có thể liên kết trực tiếp tệp của mình (chẳng hạn như https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Máy tính xách tay sống

Nếu bạn muốn người dùng của mình có thể tính toán lại một số phần, bạn cũng có thể sử dụng MyBinder . Phải mất một thời gian để bắt đầu máy tính xách tay của bạn, nhưng kết quả là giá trị nó.

Như đã nói bởi @Mapl, Google có thể lưu trữ sổ ghi chép của bạn với Colab . Một tính năng hay là tính toán các tế bào của bạn qua GPU.


1
MyBinder sẽ tạo một huy hiệu mà bạn có thể đặt trong repo của mình để người dùng dễ dàng khởi chạy một sổ ghi chép đang hoạt động ( trực tiếp ), xem tại đây , ví dụ cơ bản. Bạn thậm chí có thể chỉ định khởi chạy trực tiếp vào một trang sổ tay HOẠT ĐỘNG nhất định chứ không phải bảng điều khiển Jupyter bằng cách nhập đường dẫn đến tệp sổ ghi chép trước khi bạn nhấn mũi tên xuống bên cạnh nút khởi chạy để lấy huy hiệu.
Wayne

7

Một cách tuyệt vời để làm điều này trên WordPress bao gồm các bước sau:

Bước 1: Mở sổ ghi chép Jupyter của bạn trong trình soạn thảo văn bản và sao chép nội dung có thể trông như vậy: Tệp .ipynb của bạn có thể trông như thế này khi được mở trong trình soạn thảo văn bản

Bước 2: Ctrl + ACtrl + C nội dung này. Sau đó Ctrl + V này thành GitHub Gist mà bạn nên tạo.

Bước 3: Tạo một ý chính công khai và nhúng ý chính như bạn luôn nhúng các ý chính trên WordPress, viz., Đi đến trình chỉnh sửa HTML và thêm như vậy:

[gist gist_url]

Tôi đã thực sự thực hiện điều này trên blog của tôi. Bạn có thể tìm thấy bài viết ở đây


4

Một cách nữa để đạt được mục tiêu này là sử dụng JupyterHub .

Với JupyterHub, bạn có thể tạo một Hub nhiều người dùng để sinh ra, quản lý và ủy quyền nhiều phiên bản của máy chủ sổ ghi chép Jupyter một người dùng. Do các tùy chọn linh hoạt và tùy chỉnh, JupyterHub có thể được sử dụng để phục vụ sổ ghi chép cho một lớp học sinh, nhóm khoa học dữ liệu của công ty hoặc nhóm nghiên cứu khoa học.

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


2
Cho đến nay jupyterhub chỉ hữu ích trong việc cung cấp cho nhiều người dùng quyền truy cập để sử dụng jupyter. Việc chia sẻ sổ ghi chép đang được thực hiện với ShareHub, nhưng jupyterhub không giúp được gì.
Craig

@Craig, bạn đã có cơ hội dùng thử chưa? ShareHub là gì? Điều gì khiến bạn nghĩ rằng JupyterHub không giúp đỡ trong trường hợp này? Bạn có thể, xin vui lòng, hỗ trợ bình luận của bạn với bất kỳ đối số để người khác có thể học hỏi từ nó?
Denis Rasulev

@Craig Tôi yêu cầu thứ hai của "Denis Rasulev". ShareHub không trả lại bất kỳ kết quả có ý nghĩa nào và phần còn lại của bình luận của bạn là khó hiểu.
lucid_dreamer

@Denis làm thế nào để giải pháp này so với mybinder.org ? Có ý kiến ​​gì không?
lucid_dreamer

@ user1712447, ý tưởng có vẻ tuyệt vời nhưng tôi không gặp may mắn với các ví dụ nhận được lỗi "không có không gian" mọi lúc. Vì vậy, không thể cho bạn biết bất cứ điều gì. Bên cạnh, thảo luận về nó ở đây, imho, trông hơi giống chủ đề.
Denis Rasulev
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.