สมุดบันทึก Python แบบโต้ตอบที่สามารถทำซ้ำได้ เป็นมิตรกับคอมไพล์ และปรับใช้เป็นสคริปต์หรือแอปได้
เอกสาร · ความไม่ลงรอยกัน · ตัวอย่าง
อังกฤษ |简体中文
marimo เป็นสมุดบันทึก Python แบบรีแอกทีฟ: เรียกใช้เซลล์หรือโต้ตอบกับองค์ประกอบ UI และ Marimo จะเรียกใช้เซลล์ที่ขึ้นต่อกันโดยอัตโนมัติ (หรือทำเครื่องหมายว่าเป็นเก่า) ทำให้โค้ดและเอาต์พุตสอดคล้องกัน สมุดบันทึก Marimo จะถูกจัดเก็บเป็น Python ล้วนๆ ปฏิบัติการได้เป็นสคริปต์ และปรับใช้เป็นแอปได้
จุดเด่น .
jupyter
, streamlit
, jupytext
, ipywidgets
, papermill
และอีกมากมาย.py
pip install marimo & & marimo tutorial intro
ลองมาริโมะที่สนามเด็กเล่นออนไลน์ของเรา ซึ่งทำงานบนเบราว์เซอร์ทั้งหมด!
ข้ามไปที่การเริ่มต้นอย่างรวดเร็วสำหรับไพรเมอร์บน CLI ของเรา
มาริโมรับประกันว่าโค้ด เอาท์พุต และสถานะของโปรแกรมในโน้ตบุ๊กของคุณมีความสอดคล้องกัน ซึ่งจะช่วยแก้ปัญหาต่างๆ ที่เกี่ยวข้องกับโน้ตบุ๊กแบบเดิมๆ เช่น Jupyter
สภาพแวดล้อมการเขียนโปรแกรมเชิงโต้ตอบ เรียกใช้เซลล์และมาริโมะ จะตอบสนอง โดยการเรียกใช้เซลล์ที่อ้างอิงตัวแปรโดยอัตโนมัติ ซึ่งช่วยขจัดงานที่เสี่ยงต่อข้อผิดพลาดจากการเรียกใช้เซลล์ซ้ำด้วยตนเอง ลบเซลล์และมาริโมะจะขัดตัวแปรออกจากหน่วยความจำโปรแกรม เพื่อกำจัดสถานะที่ซ่อนอยู่
เข้ากันได้กับโน้ตบุ๊กราคาแพง marimo ช่วยให้คุณกำหนดค่ารันไทม์ให้เป็นแบบขี้เกียจ โดยทำเครื่องหมายเซลล์ที่ได้รับผลกระทบว่าเก่า แทนที่จะเรียกใช้โดยอัตโนมัติ สิ่งนี้ช่วยให้คุณรับประกันสถานะของโปรแกรมในขณะเดียวกันก็ป้องกันการดำเนินการเซลล์ราคาแพงโดยไม่ตั้งใจ
องค์ประกอบ UI ที่ซิงโครไนซ์ โต้ตอบกับองค์ประกอบ UI เช่น แถบเลื่อน ดรอปดาวน์ หม้อแปลงดาต้าเฟรม และอินเทอร์เฟซการแชท และเซลล์ที่ใช้องค์ประกอบเหล่านี้จะถูกเรียกใช้ใหม่โดยอัตโนมัติด้วยค่าล่าสุด
ดาต้าเฟรมแบบโต้ตอบ เลื่อนดู ค้นหา กรอง และจัดเรียงแถวนับล้านอย่างรวดเร็ว โดยไม่ต้องใช้โค้ด
รันไทม์ที่มีประสิทธิภาพ Marimo รันเฉพาะเซลล์ที่ต้องรันโดยการวิเคราะห์โค้ดของคุณแบบคงที่
มาร์กดาวน์แบบไดนามิกและ SQL ใช้มาร์กดาวน์เพื่อบอกเล่าเรื่องราวแบบไดนามิกที่ขึ้นอยู่กับข้อมูล Python หรือสร้างการสืบค้น SQL ที่ขึ้นอยู่กับค่า Python และดำเนินการกับ dataframes, ฐานข้อมูล, CSV, Google Sheets หรือสิ่งอื่นใดโดยใช้กลไก SQL ในตัวของเรา ซึ่งจะส่งคืนผลลัพธ์เป็น Python dataframe
สมุดบันทึกของคุณยังคงเป็น Python ที่แท้จริง แม้ว่าจะใช้มาร์กดาวน์หรือ SQL ก็ตาม
คำสั่งการดำเนินการที่กำหนด สมุดบันทึกจะถูกดำเนินการตามลำดับที่กำหนด โดยอิงตามการอ้างอิงตัวแปร แทนที่จะเป็นตำแหน่งของเซลล์บนเพจ จัดระเบียบสมุดบันทึกของคุณให้เหมาะกับเรื่องราวที่คุณต้องการเล่ามากที่สุด
การจัดการแพ็คเกจในตัว Marimo มีการสนับสนุนในตัวสำหรับผู้จัดการแพ็คเกจหลักๆ ทั้งหมด ทำให้คุณติดตั้งแพ็คเกจเมื่อนำเข้าได้ Marimo ยังสามารถซีเรียลไลซ์ข้อกำหนดแพ็คเกจในไฟล์โน้ตบุ๊ก และติดตั้งอัตโนมัติในแซนด์บ็อกซ์ venv ที่แยกได้
รวมแบตเตอรี่ Marimo มาพร้อมกับ GitHub Copilot, ผู้ช่วย AI, การจัดรูปแบบโค้ด Ruff, การส่งออก HTML, การเติมโค้ดให้เสร็จอย่างรวดเร็ว, ส่วนขยาย VS Code, โปรแกรมดูดาต้าเฟรมแบบโต้ตอบ และฟีเจอร์คุณภาพชีวิตอื่นๆ อีกมากมาย
การติดตั้ง ในเทอร์มินัลให้รัน
pip install marimo # or conda install -c conda-forge marimo
marimo tutorial intro
สร้างสมุดบันทึก
สร้างหรือแก้ไขสมุดบันทึกด้วย
marimo edit
เรียกใช้แอพ เรียกใช้สมุดบันทึกของคุณเป็นเว็บแอป โดยมีโค้ด Python ซ่อนอยู่และไม่สามารถแก้ไขได้:
marimo run your_notebook.py
ดำเนินการเป็นสคริปต์ ดำเนินการสมุดบันทึกเป็นสคริปต์ที่บรรทัดคำสั่ง:
python your_notebook.py
แปลงสมุดบันทึก Jupyter โดยอัตโนมัติ แปลงสมุดบันทึก Jupyter เป็นสมุดบันทึก Marimo โดยอัตโนมัติด้วย CLI
marimo convert your_notebook.ipynb > your_notebook.py
หรือใช้เว็บอินเตอร์เฟสของเรา
บทช่วยสอน แสดงรายการบทช่วยสอนทั้งหมด:
marimo tutorial --help
ดูคำถามที่พบบ่อยได้ที่เอกสารของเรา
มาริโม่นั้นง่ายต่อการเริ่มต้นใช้งาน โดยมีพื้นที่มากมายสำหรับผู้ใช้ระดับสูง ตัวอย่างเช่น นี่คือโปรแกรมสร้างภาพแบบฝังที่สร้างในมาริโมะ (วิดีโอ):
ตรวจสอบเอกสาร examples/
โฟลเดอร์ และแกลเลอรีของเราเพื่อเรียนรู้เพิ่มเติม
บทช่วยสอน | อินพุต | แปลง | เค้าโครง |
เราขอขอบคุณทุกการมีส่วนร่วม! คุณไม่จำเป็นต้องเป็นผู้เชี่ยวชาญก็สามารถช่วยเหลือได้ โปรดดู CONTRIBUTING.md สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการเริ่มต้น
คำถาม? ติดต่อเราได้ที่ Discord
เรากำลังสร้างชุมชน มาออกไปเที่ยวกับเรา!
marimo เป็นการคิดค้นสมุดบันทึก Python ขึ้นมาใหม่ ในฐานะโปรแกรม Python ที่ทำซ้ำ โต้ตอบได้ และแชร์ได้ แทนที่จะเป็น Scratchpad JSON ที่มีแนวโน้มว่าจะเกิดข้อผิดพลาด
เราเชื่อว่าเครื่องมือที่เราใช้กำหนดวิธีคิดของเรา — เครื่องมือที่ดีกว่า เพื่อจิตใจที่ดีขึ้น ด้วย Marimo เราหวังว่าจะมอบสภาพแวดล้อมการเขียนโปรแกรมที่ดีขึ้นให้กับชุมชน Python เพื่อทำการวิจัยและสื่อสาร เพื่อทดลองใช้โค้ดและแบ่งปัน เพื่อเรียนรู้วิทยาศาสตร์คอมพิวเตอร์และสอนมัน
แรงบันดาลใจของเรามาจากสถานที่และโครงการต่างๆ มากมาย โดยเฉพาะบทความของ Pluto.jl, ObservableHQ และ Bret Victor Marimo เป็นส่วนหนึ่งของความเคลื่อนไหวที่มากขึ้นไปสู่การเขียนโปรแกรมกระแสข้อมูลเชิงโต้ตอบ จาก IPyflow, streamlit, TensorFlow, PyTorch, JAX และ React แนวคิดเกี่ยวกับการเขียนโปรแกรมเชิงฟังก์ชัน การประกาศ และเชิงโต้ตอบกำลังเปลี่ยนแปลงเครื่องมือที่หลากหลายให้ดีขึ้น