Bagaimana saya bisa berbagi notebook Jupyter dengan yang bukan programmer? [Tutup]

167

Saya mencoba merangkul apa yang saya bisa / tidak bisa lakukan dengan Jupyter.

Saya memiliki server Jupyter yang berjalan di server internal kami, dapat diakses melalui VPN dan dilindungi kata sandi.

Saya satu-satunya yang benar-benar membuat notebook tetapi saya ingin membuat beberapa notebook terlihat oleh anggota tim lainnya dengan cara baca-saja. Idealnya saya bisa membagikan URL dengan mereka yang akan mereka tandai ketika mereka ingin melihat notebook dengan data yang disegarkan.

Saya melihat opsi ekspor tetapi tidak dapat menemukan menyebutkan "menerbitkan" atau "mempublikasikan" notebook hidup lokal. Apakah ini tidak mungkin? Apakah mungkin itu cara yang salah untuk memikirkan bagaimana seharusnya Jupyter digunakan?

xav
sumber
5
Sepertinya Anda cukup meletakkan .ipynbfile - file itu di GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe
4
Tetapi untuk merahasiakannya, kami harus membayar untuk akun.
xav
Jadi, Anda tidak ingin mereka menjadi sepenuhnya publik? Jika hanya untuk penduduk setempat, mengapa mereka tidak dapat mengakses server?
jonrsharpe
2
Maaf jika tidak jelas. Saya ingin menyajikan buku catatan di server (hanya tim yang dapat melihatnya) tetapi jika memungkinkan saya ingin menghindari memberi mereka kata sandi contoh Jupyter atau cara akses lainnya dengan hak edit.
xav
4
mungkin Anda bisa membuat intisari rahasia ( gist.github.com ) " Intisari rahasia disembunyikan dari mesin pencari tetapi dapat dilihat oleh siapa pun yang Anda berikan URL." satu bahkan tidak memiliki akun github. cepat.
tagoma

Jawaban:

78

Cara "terbaik" untuk membagikan buku catatan Jupyter adalah dengan menempatkannya di GitHub (dan melihatnya langsung) atau tautan publik lainnya dan menggunakan Penampil Buku Catatan Jupyter . Ketika privasi lebih merupakan masalah maka ada alternatif tetapi tentu saja lebih kompleks; tidak ada cara bawaan untuk melakukan ini di Jupyter sendirian, tetapi beberapa opsi adalah:

Tuan rumah nbviewer Anda sendiri

GitHub dan Jupyter Notebook Veiwer keduanya menggunakan alat yang sama untuk membuat .ipynbfile menjadi HTML statis, alat ini adalah nbviewer .

Instruksi pemasangan lebih kompleks daripada yang ingin saya masuki di sini tetapi jika perusahaan / tim Anda memiliki server bersama yang tidak memerlukan akses kata sandi maka Anda dapat meng-host nbviewer di server itu dan mengarahkannya untuk memuat dari server kredensial Anda . Ini mungkin akan memerlukan beberapa konfigurasi yang lebih maju daripada yang akan Anda temukan di dokumen.

Siapkan skrip penerapan

Jika Anda tidak perlu hidup memperbarui HTML maka Anda bisa mengatur script di server credentialed Anda yang hanya akan menggunakan built-in pilihan ekspor Jupyter untuk membuat file statis HTML dan kemudian mengirim mereka ke server lebih mudah diakses publik.

Michael Leonard
sumber
Anda juga dapat mengakses nbviewer langsung di nbviewer.jupyter.org dan menambahkan di sana file Anda
guhur
The Jupyter Notebook Viewer akan membuat notebook statis dalam gists juga, hemat Anda dari membutuhkan GitHub penuh matang repo.
Wayne
Catatan "tambahkan di sana file Anda" tidak termasuk mengunggahnya dengan dialog web yang memungkinkan Anda memilih file secara lokal dari sistem file browser.
lucid_dreamer
29

Google baru-baru ini mempublikasikan proyek Kolaborasi internalnya ( tautan di sini ). Anda dapat memulai buku catatan dengan cara yang sama seperti memulai Lembar Google atau Google Doc, dan kemudian cukup berbagi buku catatan atau menambahkan kolaborator ..

Untuk saat ini, ini adalah cara termudah bagi saya.

Mapl
sumber
1
Saya terkejut menemukan betapa intuitif dan mudahnya Colaboratory digunakan. Perhatikan bahwa Anda dapat membagikan tautan sebagai hanya tampilan tetapi pengunjung dapat mengaktifkan mode "taman bermain" untuk menjalankan blok kode dan menyesuaikan parameter. sangat keren.
Timothy Lombard
Cara pintas semuanya rusak dalam colab.
mathtick
Anda bisa mulai di sini: Google colab Introduction
cglacet
24

Saran Michael untuk menjalankan instance nbviewer Anda sendiri adalah yang baik yang saya gunakan di masa lalu dengan server Enterprise Github.

Alternatif ringan lainnya adalah memiliki sel di ujung notebook Anda yang melakukan shell call ke nbconvert sehingga secara otomatis di-refresh setelah menjalankan semuanya:

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

EDIT : Dengan Big Split Jupyter / IPython, Anda mungkin ingin mengubahnya !jupyter nbconvert <notebook name>.ipynb --to htmlsekarang.

Randy
sumber
12

Tergantung pada apa yang ingin Anda lakukan dengan Notebook Anda: apakah Anda ingin pengguna dapat menghitung ulang hasil atau hanya bermain dengan mereka?

Notebook statis

NBViewer adalah alat yang hebat. Anda dapat langsung menggunakannya di dalam Jupyter . Github juga memiliki render, sehingga Anda dapat langsung menautkan file Anda (seperti https://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

Notebook yang hidup

Jika Anda ingin pengguna Anda dapat menghitung ulang beberapa bagian, Anda juga dapat menggunakan MyBinder . Butuh beberapa waktu untuk memulai notebook Anda, tetapi hasilnya sepadan.

Seperti yang dikatakan oleh @Mapl, Google dapat meng-host notebook Anda dengan Colab . Fitur yang bagus adalah menghitung sel Anda melalui GPU.

guhur
sumber
1
MyBinder akan membuat lencana yang dapat Anda tempatkan di repo Anda bagi pengguna untuk dengan mudah meluncurkan notebook aktif ( langsung ), lihat di sini , untuk contoh dasar. Anda bahkan dapat menentukan untuk meluncurkan langsung ke halaman buku catatan AKTIF tertentu dan bukan dasbor Jupyter dengan memasukkan jalur ke file buku catatan sebelum Anda menekan panah ke bawah di sebelah tombol peluncuran untuk mendapatkan lencana Anda.
Wayne
7

Cara terbaik untuk melakukan ini di WordPress terdiri dari langkah-langkah berikut:

Langkah 1: Buka buku catatan Jupyter Anda di editor teks dan salin konten yang mungkin terlihat seperti ini: File .ipynb Anda mungkin terlihat seperti ini ketika dibuka di editor teks

Langkah 2: Ctrl + A dan Ctrl + C konten ini. Kemudian Ctrl + V ini ke GitHub Gist yang harus Anda buat.

Langkah 3: Buat intisari publik dan sematkan intisari seperti Anda semula menempel intisari di WordPress, yaitu, buka editor HTML dan tambahkan seperti:

[gist gist_url]

Saya sebenarnya telah menerapkan ini di blog saya. Anda dapat menemukan pos di sini

Anirudh
sumber
4

Satu lagi cara untuk mencapai tujuan ini adalah menggunakan JupyterHub .

Dengan JupyterHub Anda dapat membuat Hub multi-pengguna yang memunculkan, mengelola, dan proksi beberapa contoh dari server notebook Jupyter satu-pengguna. Karena fleksibilitas dan opsi penyesuaiannya, JupyterHub dapat digunakan untuk menyajikan notebook ke kelas siswa, grup ilmu data perusahaan, atau grup riset ilmiah.

masukkan deskripsi gambar di sini

Denis Rasulev
sumber
2
Sejauh ini jupyterhub hanya berguna untuk memberikan banyak pengguna akses untuk menggunakan jupyter. Berbagi buku catatan sedang dikerjakan dengan ShareHub, tetapi jupyterhub tidak membantu.
Craig
@Craig, apakah Anda memiliki kesempatan untuk mencobanya? Apa itu ShareHub? Apa yang membuat Anda berpikir bahwa JupyterHub tidak membantu dalam kasus ini? Bisakah Anda, tolong, mendukung komentar Anda dengan argumen apa pun sehingga orang lain dapat belajar darinya?
Denis Rasulev
@Craig I meminta "Denis Rasulev". ShareHub tidak memberikan hasil yang berarti, dan sisa komentar Anda samar.
lucid_dreamer
@Denis, bagaimana solusi ini dibandingkan dengan mybinder.org ? Ada komentar?
lucid_dreamer
@ user1712447, ide terlihat hebat tetapi saya tidak beruntung dengan contoh mendapatkan "tidak ada ruang" kesalahan sepanjang waktu. Jadi tidak bisa memberitahumu apa-apa. Selain itu, membahasnya di sini, imho, terlihat agak seperti di luar topik.
Denis Rasulev