DEV Community

Cover image for การใช้งาน Polyglot notebook กับ Python
Ruxo Zheng
Ruxo Zheng

Posted on

การใช้งาน Polyglot notebook กับ Python

โพสนี้รวบรวมเทคนิคที่เกี่ยวข้องกับการใช้ 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
Enter fullscreen mode Exit fullscreen mode

ให้ copy magic command ลงไปใน Code cell (จะภาษาอะไรก็ได้) แล้วก็กด run ถ้าทุกอย่างโอเค ก็จะขึ้นข้อความประมาณนี้

Success message

Note: pythonkernel เป็นชื่อของ Kernel ที่จะขึ้นมาเลือกเวลาเลือก ภาษาใน Polyglot ดังรูป

ตัวอย่าง Kernel list

ตัวอย่างการทำงาน

Execution example

แต่ถ้าคุณอยากจะใช้ 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
Enter fullscreen mode Exit fullscreen mode

สังเกตว่าจะมี 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 ในตัว

Navigator screenshot

วิธีสร้างก็แสนง่าย กดปุ่ม 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
Enter fullscreen mode Exit fullscreen mode

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

Search result

จะเห็นว่ามันบอกคำสั่งสำหรับ install ใน Anaconda ให้ด้วย

วิธีการ install package ลงใน environment เรา ก็ต้องเปิด terminal ขึ้นมาก่อน ง่ายสุดก็ใช้ Navigator

Open terminal

แล้วสามารถพิมพ์คำสั่งเพื่อ install package ได้เลย

conda install conda-forge::langchain-community
Enter fullscreen mode Exit fullscreen mode

แต่ถ้าใน 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.