ฉันจะแชร์สมุดบันทึก Jupyter กับผู้ที่ไม่ใช่โปรแกรมเมอร์ได้อย่างไร [ปิด]


167

ฉันกำลังพยายามคลุมหัวสิ่งที่ฉันสามารถทำได้ / ไม่สามารถทำได้กับ Jupyter

ฉันมีเซิร์ฟเวอร์ Jupyter ทำงานบนเซิร์ฟเวอร์ภายในของเราสามารถเข้าถึงได้ผ่าน VPN และป้องกันด้วยรหัสผ่าน

ฉันเป็นคนเดียวที่สร้างสมุดบันทึกจริง แต่ฉันต้องการให้สมาชิกทีมอื่นมองเห็นสมุดบันทึกบางเล่มด้วยวิธีอ่านอย่างเดียว โดยหลักการแล้วฉันสามารถแบ่งปัน URL กับพวกเขาซึ่งพวกเขาจะทำบุ๊กมาร์กเมื่อพวกเขาต้องการดูสมุดบันทึกที่มีข้อมูลที่รีเฟรช

ฉันเห็นตัวเลือกการส่งออก แต่ไม่พบการกล่าวถึง "การเผยแพร่" หรือ "การทำให้เป็นสาธารณะ" ในโน้ตบุ๊คสาธารณะ เป็นไปไม่ได้เหรอ? อาจเป็นวิธีที่ผิดที่จะคิดว่า Jupyter ควรใช้อย่างไร?


5
ดูเหมือนว่าคุณสามารถวาง.ipynbไฟล์ไว้บน GitHub: blog.jupyter.org/2015/05/07/rendering-notebooks-on-github
jonrsharpe

4
แต่เพื่อให้เป็นส่วนตัวเราจะต้องจ่ายเงินสำหรับบัญชี
xav

ดังนั้นคุณจึงไม่ต้องการให้ประชาชนในเครือ? หากเฉพาะกับคนในท้องถิ่นทำไมพวกเขาไม่สามารถเข้าถึงเซิร์ฟเวอร์ได้
jonrsharpe

2
ขออภัยถ้ามันไม่ชัดเจน ฉันต้องการให้บริการโน้ตบุ๊กบนเซิร์ฟเวอร์ (มีเพียงทีมเท่านั้นที่สามารถเห็นได้) แต่ถ้าเป็นไปได้ฉันต้องการหลีกเลี่ยงการให้รหัสผ่านของ Jupyter instance หรือวิธีการเข้าถึงอื่น ๆ ที่มีสิทธิ์แก้ไข
xav

4
บางทีคุณสามารถสร้างกระทู้ลับ ( gist.github.com ) "ข้อความลับถูกซ่อนไว้จากเครื่องมือค้นหา แต่ทุกคนที่คุณให้ URL จะปรากฏ" หนึ่งยังไม่มีบัญชี GitHub รวดเร็ว
tagoma

คำตอบ:


78

"ดีที่สุด" วิธีการใช้โน๊ตบุ๊ค Jupyter ก็คือการที่จะวางไว้บน GitHub (และดูได้โดยตรง) หรือการเชื่อมโยงที่สาธารณะอื่น ๆ และใช้Jupyter โน๊ตบุ๊ค Viewer เมื่อความเป็นส่วนตัวเป็นปัญหามากกว่านั้นก็มีทางเลือกอื่น แต่มันก็ซับซ้อนกว่า ไม่มีวิธีการทำเช่นนี้ใน Jupyter เพียงอย่างเดียว แต่มีสองตัวเลือกดังนี้:

โฮสต์ nbviewer ของคุณเอง

GitHub และ Jupyter โน๊ตบุ๊ค Veiwer ทั้งใช้เครื่องมือเดียวกันเพื่อแสดงผล.ipynbไฟล์ลงใน HTML คงเครื่องมือนี้nbviewer

คำแนะนำในการติดตั้งนั้นซับซ้อนกว่าที่ฉันเต็มใจที่จะเข้าไปที่นี่ แต่ถ้า บริษัท / ทีมของคุณมีเซิร์ฟเวอร์ที่ใช้ร่วมกันที่ไม่ต้องการการเข้าถึงรหัสผ่านคุณสามารถโฮสต์ nbviewer บนเซิร์ฟเวอร์นั้นและสั่งให้โหลดจากเซิร์ฟเวอร์ข้อมูลรับรองของคุณ . นี่อาจจะต้องมีการกำหนดค่าขั้นสูงมากกว่าที่คุณจะพบในเอกสาร

ตั้งค่าสคริปต์การปรับใช้

หากคุณไม่จำเป็นต้องอัปเดต HTML แบบสดๆคุณสามารถตั้งค่าสคริปต์บนเซิร์ฟเวอร์หนังสือรับรองที่จะใช้ตัวเลือกการเอ็กซ์พอร์ตบิวด์อินของ Jupyter เพื่อสร้างไฟล์ HTML แบบคงที่แล้วส่งไปยังเซิร์ฟเวอร์ที่เข้าถึงได้ทั่วไปมากขึ้น


นอกจากนี้คุณยังสามารถเข้าถึง nbviewer โดยตรงบนnbviewer.jupyter.orgและเพิ่มไฟล์ของคุณลงไป
guhur

Jupyter โน๊ตบุ๊ค Viewerจะทำให้โน๊ตบุ๊คแบบคงที่ภายในจิสต์เกินไปเจียดคุณจากการที่ต้องเต็มเปี่ยม repo GitHub
Wayne

หมายเหตุ "เพิ่มไฟล์ของคุณไว้ที่นั่น" ไม่รวมการอัปโหลดไฟล์ด้วยกล่องโต้ตอบเว็บที่ช่วยให้คุณสามารถเลือกไฟล์ในเครื่องจากระบบไฟล์ของเบราว์เซอร์
lucid_dreamer

29

Google เพิ่งเผยแพร่โครงการร่วมมือภายใน ( ลิงก์ที่นี่ ) สู่สาธารณะ คุณสามารถเริ่มสมุดบันทึกในลักษณะเดียวกับการเริ่มใช้งาน Google ชีตหรือ Google Doc จากนั้นเพียงแบ่งปันสมุดบันทึกหรือเพิ่มผู้ทำงานร่วมกัน ..

สำหรับตอนนี้เป็นวิธีที่ง่ายที่สุดสำหรับฉัน


1
ฉันรู้สึกประหลาดใจที่พบว่า Colaboratory ใช้งานง่ายและใช้งานง่ายเพียงใด โปรดทราบว่าคุณสามารถแชร์ลิงก์เป็นแบบดูได้เท่านั้น แต่ผู้เยี่ยมชมสามารถเปิดใช้งานโหมด "สนามเด็กเล่น" เพื่อเรียกใช้บล็อกโค้ดและปรับพารามิเตอร์ เด็ดมาก
ทิโมธีลอมบาร์ด

ทางลัดทั้งหมดใช้งานไม่ได้ใน colab
mathtick

คุณสามารถเริ่มต้นได้ที่นี่: การแนะนำ colab ของ Google
cglacet

24

ข้อเสนอแนะของ Michael ในการใช้งานอินสแตนซ์ nbviewer ของคุณเองเป็นสิ่งที่ดีที่ฉันเคยใช้ในอดีตกับเซิร์ฟเวอร์ Enterprise Github

อีกทางเลือกที่มีน้ำหนักเบาคือการมีเซลล์ที่ส่วนท้ายของโน้ตบุ๊กของคุณที่เรียกเชลล์ไปที่ nbconvert เพื่อให้เซลล์มีการรีเฟรชโดยอัตโนมัติหลังจากทำงานทั้งหมด:

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

แก้ไข : ด้วย Big Split ของ Jupyter / IPython คุณอาจต้องการเปลี่ยนสิ่งนี้เป็น!jupyter nbconvert <notebook name>.ipynb --to htmlตอนนี้


12

ขึ้นอยู่กับสิ่งที่คุณตั้งใจจะทำกับโน๊ตบุ๊คของคุณ: คุณต้องการให้ผู้ใช้สามารถคำนวณผลลัพธ์ใหม่หรือเล่นกับพวกเขาได้หรือไม่?

โน้ตบุ๊คแบบคงที่

NBViewerเป็นเครื่องมือที่ยอดเยี่ยม คุณโดยตรงสามารถใช้งานได้ภายในJupyter Github มีการเรนเดอร์ดังนั้นคุณสามารถเชื่อมโยงไฟล์ของคุณโดยตรง (เช่นhttps://github.com/my-name/my-repo/blob/master/mynotebook.ipynb )

สมุดบันทึกชีวิต

หากคุณต้องการให้ผู้ใช้ของคุณสามารถคำนวณบางส่วนได้คุณสามารถใช้MyBinderได้ ต้องใช้เวลาพอสมควรในการเริ่มต้นโน้ตบุ๊คของคุณ แต่ผลลัพธ์จะคุ้มค่า

ตามที่กล่าวโดย @Mapl Google สามารถเป็นเจ้าภาพโน้ตบุ๊คของคุณกับColab คุณสมบัติที่ดีคือการคำนวณเซลล์ของคุณผ่าน GPU


1
MyBinderจะสร้างตราสัญลักษณ์ที่คุณสามารถวางไว้ใน repo ของคุณเพื่อให้ผู้ใช้เปิดใช้งานโน๊ตบุ๊คที่ใช้งาน ( สด ) ได้อย่างง่ายดายดูที่นี่เพื่อเป็นตัวอย่างพื้นฐาน คุณสามารถระบุให้เปิดใช้งานในหน้าสมุดบันทึกที่ใช้งานได้โดยตรงและไม่ใช่แดชบอร์ด Jupyter โดยป้อนเส้นทางไปยังไฟล์สมุดบันทึกก่อนที่คุณจะกดลูกศรลงถัดจากปุ่มเรียกใช้เพื่อรับตราของคุณ
Wayne

7

วิธีที่ยอดเยี่ยมในการทำสิ่งนี้บน WordPress ประกอบด้วยขั้นตอนต่อไปนี้:

ขั้นตอนที่ 1:เปิดสมุดบันทึก Jupyter ของคุณในโปรแกรมแก้ไขข้อความและคัดลอกเนื้อหาที่อาจมีลักษณะดังนี้: ไฟล์. ipynb ของคุณอาจมีลักษณะเช่นนี้เมื่อเปิดในโปรแกรมแก้ไขข้อความ

ขั้นตอนที่ 2: Ctrl + AและCtrl + Cเนื้อหานี้ จากนั้นCtrl + Vสิ่งนี้ถึง GitHub ส่วนสำคัญที่คุณควรสร้าง

ขั้นตอนที่ 3:สร้าง gist สาธารณะและฝัง gist เช่นคุณฝัง gist ใน WordPress, viz., ไปที่ HTML editor และเพิ่มดังนี้:

[gist gist_url]

ฉันนำไปใช้จริงในบล็อกของฉัน คุณสามารถค้นหาโพสต์ได้ที่นี่


4

อีกวิธีหนึ่งที่จะบรรลุเป้าหมายนี้จะใช้JupyterHub

ด้วย JupyterHub คุณสามารถสร้างฮับที่มีผู้ใช้หลายคนซึ่งวางไข่จัดการและพร็อกซี่หลายอินสแตนซ์ของเซิร์ฟเวอร์โน้ตบุ๊ก Jupyter ผู้ใช้คนเดียว เนื่องจากความยืดหยุ่นและตัวเลือกการปรับแต่งของมัน JupyterHub สามารถใช้ในการให้บริการโน้ตบุ๊กให้กับชั้นเรียนของนักเรียนกลุ่มวิทยาศาสตร์ข้อมูลขององค์กรหรือกลุ่มการวิจัยทางวิทยาศาสตร์

ป้อนคำอธิบายรูปภาพที่นี่


2
จนถึงตอนนี้ jupyterhub มีประโยชน์สำหรับการอนุญาตให้ผู้ใช้หลายคนเข้าถึง jupyter เท่านั้น การแชร์สมุดบันทึกกำลังทำงานร่วมกับ ShareHub แต่ jupyterhub ไม่ได้ช่วยอะไร
Craig

@ Craig คุณมีโอกาสลองไหม? ShareHub คืออะไร อะไรทำให้คุณคิดว่า JupyterHub ไม่ได้ช่วยในกรณีนี้ คุณช่วยสนับสนุนความคิดเห็นของคุณด้วยข้อโต้แย้งใด ๆ เพื่อให้ผู้อื่นได้เรียนรู้จากมัน?
เดนิสราซูเลฟ

@Craig ฉันขอที่สอง "Denis Rasulev" ShareHub จะไม่ส่งคืนผลลัพธ์ที่มีความหมายใด ๆ และความคิดเห็นที่เหลือก็เป็นความลับ
lucid_dreamer

@Denis วิธีการที่ไม่แก้ปัญหานี้เปรียบเทียบกับmybinder.org ? มีคำแนะนำอะไรมั้ย?
lucid_dreamer

@ user1712447 ความคิดดูดี แต่ฉันไม่มีโชคกับตัวอย่างที่ได้รับข้อผิดพลาด "no space" ตลอดเวลา จึงไม่สามารถบอกอะไร นอกจากนี้การพูดคุยได้ที่นี่ IMHO ลักษณะบิตเช่นปิดหัวข้อ
เดนิสราซูเลฟ
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.