โพสนี้รวบรวมเทคนิคที่เกี่ยวข้องกับการใช้ Polyglot notebook เพื่อ run Python interpreter (Polyglot ณ เวลาที่เขียน คือ version 1.0.5568010
)
Polyglot เป็น plugin อันนึงของ Visual Studio code ที่ run .NET Interactive (ซึ่งคือ Jupyter version .NET นั่นเอง)
การ enable Python ใน Polyglot
Polyglot มีคู่มือในการใช้ Python อยู่ที่ Manual ซึ่งมีอยู่ 2 วิธี คือ 1) ใช้ Python ตรงๆ กับ 2) ใช้ผ่าน Anaconda
อะไรคือ Anaconda?
Anaconda เป็น toolset สำหรับ data scientists ใช้ Python ในการทำ data processing โดย Adaconda จะมี python repositories ของตัวเอง ที่รับประกันเรื่องปัญหาความเข้ากัน (compatibility issues) ของ Package ไว้ และมันง่ายต่อการติดตั้ง และใช้งาน (โดยเฉพาะ Windows ซึ่งถ้าเป็น Python module บางตัว จะต้องติดตั้ง C++/Rust compilers ไว้เวลาจะใช้งาน แต่ถ้าผ่าน Anaconda เค้าจะมี package พร้อมใช้ให้เลย แม้จะเป็น Windows ก็ตาม!)
การใช้งานกับ Python ตรงๆ
การใช้งานแบบนี้มี trick เล็กน้อย ถ้าคุณอยากใช้ virtual environment แต่ถ้าคุณ install Python package เป็นแบบ global หมด ก็สามารถใช้งานได้เลย ผ่าน "magic command" ของ Polyglot
#!connect jupyter --kernel-name pythonkernel --kernel-spec python3
ให้ copy magic command ลงไปใน Code cell (จะภาษาอะไรก็ได้) แล้วก็กด run ถ้าทุกอย่างโอเค ก็จะขึ้นข้อความประมาณนี้
Note: pythonkernel
เป็นชื่อของ Kernel ที่จะขึ้นมาเลือกเวลาเลือก ภาษาใน Polyglot ดังรูป
ตัวอย่างการทำงาน
แต่ถ้าคุณอยากจะใช้ virtual environment จะมีข้อจำกัดอยู่ นั่นคือคุณจะต้องสร้าง virtual environment ใน directory ของ Notebook นั้น (ก็ด้วยคำสั่งมาตรฐาน Python py -m venv .venv
) ส่วน magic command ยังคงไว้เหมือนเดิม เพียงแต่ Polyglot จะใช้ Python จาก environment เรา พร้อม package ต่างๆที่ installed ไว้
หลังจาก Preview หวังว่าจะมี option refer virtual environment ที่ตำแหน่งอื่นได้ 🤞
การใช้งานกับ Anaconda
ข้อดีของการใช้กับ Anaconda คือ เราสามารถสร้าง virtual environment ไว้ที่อื่นได้ และโดยเฉพาะอย่างยิ่งถ้าคุณอยากจะเล่น data science ของ Python อยู่แล้ว เช่น NumPy
package
ปกติเมื่อลง Anaconda เสร็จ มันจะมี default environment ที่ชื่อ base
มาให้อยู่แล้ว ซึ่งเราสามารถใช้ magic command ดังต่อไปนี้ได้เลย
#!connect jupyter --kernel-name pythonkernel --conda-env base --kernel-spec python3
สังเกตว่าจะมี parameter -conda-env base
เพิ่มขึ้นมา คำว่า base
คือ base environment ของ Anaconda
แต่ในทางปฏิบัติ เราไม่ควรใช้ base ของ Anaconda โดยเฉพาะถ้าเราอยากจะเพิ่มเติม/ลด package ซึ่งมันอาจจะกระทบ package dependencies และทำให้ tools หลายๆตัวของ Anaconda run ไม่ได้ก็ได้
เราควรสร้าง Anaconda environment ขึ้นมาใหม่ และวิธีง่ายที่สุดคือใช้ Anaconda Navigator
สร้าง environment ใหม่บน Anaconda
Anaconda Navigator เป็น notebook management และ environment management ในตัว
วิธีสร้างก็แสนง่าย กดปุ่ม Create ตั้งชื่อ environment และเลือก Python interpreter ซึ่งแนะนำว่าใช้ตัวที่ recommend โดย Anaconda เพราะจะมีปัญหาเรื่อง compatibility น้อยสุด
เมื่อกดปุ่มสร้างแล้ว รอซักครู่ ก็จะปรากฎ environment ใหม่ของเราขึ้นมาอยู่ใน list
แต่เราจะต้อง install package ชื่อ ipykernel
เพิ่มเติมด้วย ซึ่งสามารถทำได้เลยจาก Navigator window เช่นกัน โดย search คำว่า ipykernel
ใน panel ด้านขวาของ environment เรา (สำคัญ ต้องเลือก dropdown เป็น Not installed หรือ All) check ที่ package และกดปุ่ม Apply ด้านล่าง) package นี้จำเป็นสำหรับ Polyglot plugin
ในตัวอย่าง มีสร้างไว้อันนึงชื่อ ai
เวลาจะใช้ใน Polyglot ก็เปลี่ยน --conda-env
ให้เป็นชื่อ environment เรา
#!connect jupyter --kernel-name pythonkernel --conda-env ai --kernel-spec python3
Missing package!? ใน Anaconda
อาจจะมีบางกรณีที่ Python package ของเราไม่อยู่ใน default list ของ Anaconda ซึ่งเราสามารถ manual install ได้ จาก 2 แหล่งคือ 1) Conda forge และ 2) PyPI
แนะนำว่าให้หา Python package จาก Conda forge ก่อน ผ่าน https://anaconda.org/conda-forge package หลายอย่างไม่ได้อยู่ใน default list แต่หาได้ที่นี่เช่น langchain-community
จะเห็นว่ามันบอกคำสั่งสำหรับ install ใน Anaconda ให้ด้วย
วิธีการ install package ลงใน environment เรา ก็ต้องเปิด terminal ขึ้นมาก่อน ง่ายสุดก็ใช้ Navigator
แล้วสามารถพิมพ์คำสั่งเพื่อ install package ได้เลย
conda install conda-forge::langchain-community
แต่ถ้าใน Conda forge ก็ไม่มี?
ก็ต้องกลับมาใช้ pip install
ซึ่งแนะนำให้เปิด terminal ผ่าน Navigator เหมือนกัน ข้อควรระวังคืออาจจะมี compatible issue ระหว่าง conda packages กับ PyPI package แต่เท่าที่ลองมา so far ยัง so good 😇
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.