pip install package
การใช้ pip เพื่อติดตั้งแพ็กเกจเสริมใน python
ในการใช้ภาษาไพธอน นอกจากมอดูลมาตรฐานที่มีอยู่แต่แรกแล้ว บ่อยครั้งจำเป็นต้องติดตั้งมอดูลเสริม (แพ็กเกจเสริม) เพิ่มเติมที่จำเพาะสำหรับงานที่ต้องการ วิธีการลงมอดูลใหม่นั้นมีหลายวิธีด้วยกัน แต่ที่นิยมมากที่สุดคือใช้ pip
แค่เข้าคอมมานด์ไลน์แล้วพิมพ์
เท่านี้แพ็กเกจของมอดูลที่ต้องการก็จะถูกติดตั้งลงเครื่อง (ถ้าไม่ติดปัญหาอะไรบางอย่าง)
pip มีประโยชน์มากสำหรับคนที่เขียนไพธอน เอาไว้ใช้คลุมหัวเวลาที่อายได้ด้วย... นั่นมันปี๊บ
คิดว่าคนที่เขียนไพธอนเกือบทุกคนน่าจะรู้จัก pip กันอยู่แล้ว แต่สำหรับในบทความนี้จะมาพูดถึงในรายละเอียด
สารบัญ
การติดตั้ง pip
ลงแพ็กเกจใหม่
--no-cache-dir
เอาแพ็กเกจออก
โหลดเก็บไว้
แสดงรายการ
ค้นหา
แสดงรายละเอียด
ปรับข้อความที่แสดง
ดูเวอร์ชัน pip
หาข้อมูลเพิ่มเติม
อัปเวอร์ชันทั้งหมด
การติดตั้ง pip
pip ไม่ใช่ส่วนประกอบหนึ่งที่ติดมากับไพธอนมาตรฐาน ดังนั้นถ้าลงไพธอนจากเว็บหลัก https://www.python.org/downloads จะยังไม่มี pip อยู่ด้วย สำหรับใน mac หรือ linux ปกติจะมีไพธอนติดมาในเครื่องตั้งแต่ต้น แต่ก็มักจะไม่ได้มี pip ให้ เพียงแต่โดยปกติถ้าติดตั้งไพธอนด้วยแพ็กเกจสำเร็จรูปอย่าง anaconda หรือ canopy ก็จะมี pip ติดมาอยู่แล้วจึงไม่ต้องห่วงเรื่องการติดตั้ง ใช้งานได้เลย ที่จริงจึงแล้วค่อนข้างแนะนำให้ใช้พวกนี้มากกว่า
สำหรับคนที่ไม่ได้ลงแพ็กเกจสำเร็จรูปก็ยังมีวิธีติดตั้ง pip อีกหลายวิธี ที่จะแนะนำต่อไปนี้เป็นแค่ส่วนนึง การติดตั้งสำหรับใน windows ให้โหลด https://bootstrap.pypa.io/get-pip.py หรือถ้าลิงก์ใช้ไม่ได้แล้วก็ให้ค้นคำว่า get-pip py ใน google ก็จะเจอได้
เมื่อโหลดไฟล์มาแล้วก็เปิดคอมมานด์ไลน์ขึ้นมาแล้วไปที่โฟลเดอร์ที่โหลดไฟล์มาแล้วสั่ง
กรณีที่ลงไพธอนไว้หลายตัวในเครื่อง pip จะไปถูกติดตั้งอยู่ในไพธอนตัวไหนก็ขึ้นอยู่กับว่ารันด้วยไพธอนตัวไหน คำสั่ง python เป็นการไปรันไพธอนตัวไหนนั้นขึ้นอยู่กับตัวแปรสภาพแวดล้อม (environment variable)
สำหรับใน mac ก็ใช้วิธีเดียวกัน แต่ถ้าจะติดตั้งในไพธอนที่ติดมากับระบบอยู่แล้วจำเป็นต้องใช้ sudo
เพียงแต่ไพธอนที่ติดมากับ mac นั้นมักจะมี easy_install ติดมาด้วย จึงอาจใช้ easy_install เพื่อติดตั้ง pip ได้เลย
สำหรับใน linux สามารถใช้คำสั่ง apt-get หรือ yum ได้
ติดตั้งแพ็กเกจด้วย pip install
คำสั่งพื้นฐานที่สุดของ pip ก็คือ pip install เมื่อต้องการมอดูลอะไรก็แค่พิมพ์ pip install ตามด้วยชื่อ เช่น
แค่นี้ก็ติดตั้งได้สำเร็จ
เวลาลงถ้าแค่ใส่ชื่อแพ็กเกจแต่ไม่ได้ระบุเวอร์ชันจะได้เวอร์ชันล่าสุด แต่หากต้องการเวอร์ชันเก่ากว่านั้นก็สามารถระบุเวอร์ชันที่ต้องการได้ เช่น
คำสั่ง pip install นั้นไม่ใช่แค่ใช้ลงมอดูลเพิ่มแต่ยังใช้อัปเวอร์ชันได้ด้วย การอัปเวอร์ชันให้ใส่ -U หรือ --upgrade นำหน้าชื่อแพ็กเกจ
เท่านี้ก็จะกลายเป็นเวอร์ชันใหม่
ปกติถ้าหากแพ็กเกจต้องการที่จะลงมีอยู่แล้วพอสั่ง pip install ไปก็จะขึ้นแบบนี้
แต่ถ้าหากต้องการบังคับให้ลงใหม่โดยไม่สนว่าจะมีอยู่แล้วหรือเปล่าก็ให้ใช้ --force-reinstall หรือ -I หรือ --ignore-installed
ปกติแล้วแพ็กเกจจะถูกนำไปเก็บไว้ในโฟลเดอร์ site-packages ที่เก็บรวมแพ็กเกจที่ใช้สำหรับไพธอนตัวที่ลงไว้ในเครื่อง
แต่ในบางครั้งถ้าไพธอนถูกลงไว้ในส่วนกลาง แต่เราต้องการลงแพ็กเกจใหม่เพื่อใช้อยู่คนเดียว หรือไม่มีสิทธิ์ sudo ทำให้ไม่สามารถลงได้ กรณีแบบนั้นให้ใส่ --user
แบบนี้แพ็กเกจจะไปเก็บอยู่ในโฟลเดอร์บ้านของผู้ใช้คนนั้นเอง เช่นใน mac จะไปถูกเก็บอยู่ใน /Users/ชื่อผู้ใช้/.local/lib เป็นต้น
ลงพร้อมกันหลายตัว
ปกติแล้วถ้าใส่ชื่อแพ็กเกจซ้อนกันหลายๆตัวจะเป็นการลงหลายๆตัวต่อกันไป
แต่บางทีถ้าเราต้องการลงหลายแพ็กเกจในเวลาเดียวกันอาจไม่สะดวกที่จะพิมพ์ทั้งหมด แบบนี้อาจเขียนชื่อทั้งหมดใส่ไฟล์ โดยเว้นบรรทัดละชื่อ แล้วใส่ -r แล้วตามด้วยชื่อไฟล์นั้น แบบนี้ก็จะเป็นการติดตั้งทั้งหมดที่มีชื่ออยู่
ใช้ --no-chache-dir
ปกติแพ็กเกจเวลาติดตั้งด้วย pip จะเริ่มจากการโหลดไฟล์ที่เกี่ยวข้อง แล้วไฟล์นั้นจึงถูกนำมารันเพื่อติดตั้งลงเครื่อง
ปกติไฟล์ที่โหลดนั้นจะถูกเก็บเอาไว้ เพื่อที่ถ้ามีความจำเป็นต้องเรียกใช้อีกจะได้ไม่ต้องโหลดใหม่
สถานที่เก็บจะต่างกันไป ขึ้นกับระบบปฏิบัติการ
ใน windows อยู่ใน โฟลเดอร์ที่ลงไว้\pip\Cache
ใน mac อยู่ใน Users/ชื่อผู้ใช้/Library/Caches/pip
ใน linux อยู่ใน home/ชื่อผู้ใช้/.cache/pip
แต่ว่าบางทีข้อมูลพวกนี้ก็มีขนาดใหญ่เกินและไม่ได้จำเป็น ถ้าต้องการประหยัดพื้นที่ควรจะสั่งให้ลบไฟล์ทิ้งไปไม่ต้องเก็บไว้ดีกว่า
ถ้าต้องการไม่ให้เก็บไฟล์เอาให้ใส่ --no-cache-dir
pip uninstall
ถ้าไม่ต้องการแล้วจะเอาออกก็ pip uninstall เช่น
แล้วก็จะมีการถามยืนยัน พอกด y ไปแพ็กเกจก็จะถูกเอาออกเรียบร้อย
ปกติแล้วเวลา uninstall จะมีการถามเพื่อความแน่ใจก่อนว่าจะลบหรือไม่ แต่ถ้าอยากให้ลบไปเลยไม่ต้องมากดยืนยันให้เสียเวลาให้ใส่ -y
แบบนี้ก็จะเป็นการเอาออกทันที
นอกจากนี้ หากมีหลายตัวที่ต้องการเอาออก ก็ใส่หลายตัวเรียงกันได้ หรือจะใช้ -r เพื่ออ่านจากไฟล์ก็ได้เช่นเดียวกับตอนลง
โหลดแพ็กเกจด้วย pip download
นอกจากจะสั่ง pip install เพื่อลงทันทีแล้ว ถ้าแค่ต้องการโหลดตัวแพ็กเกจมาไว้ในเครื่องก็อาจใช้คำสั่ง pip download เช่น
ก็จะได้ไฟล์มาโหลดเก็บไว้
ไฟล์นี้สามารถนำมาใช้เพื่อติดตั้งในภายหลังได้ วิธีการก็ใช้ pip install ตามด้วยชื่อไฟล์
แสดงรายชื่อแพ็กเกจที่ลงไว้ โดยใช้ pip list หรือ pip freeze
หากต้องการให้แสดงรายชื่อของแพ็กเกจที่ลงก็สั่ง
ได้
ถ้าต้องการให้แสดงเฉพาะแพ็กเกจที่อัปยังไม่ถึงล่าสุดให้ใช้ -o หรือ --outdated pip list -o
ได้
Package Version Latest Type
alabaster 0.7.11 0.7.12 wheel astroid 2.0.4 2.1.0 wheel astropy 3.0.4 3.1.1 wheel ฯลฯ
ในทางกลับกัน ถ้าต้องการให้แสดงแค่ตัวที่เป็นเวอร์ชันล่าสุดอยู่แล้วให้ใช้ -u หรือ --uptodate
นอกจากนี้ยังมีคำสั่ง freeze สามารถแสดงแพ็กเกจที่ลงไว้ได้เหมือนกันแต่จะแสดงผลต่างกัน
ได้ผลเป็นแบบนี้
การแสดงในรูปแบบนี้มีประโยชน์ตรงที่ว่า ถ้าหากนำมาบันทึกใส่ไฟล์ไว้ ไฟล์นั้นจะนำไปใช้สำหรับติดตั้งด้วยคำสั่ง pip install -r ได้ทันที จึงเหมาะกับเวลาต้องการอพยพย้ายเครื่องแล้วไม่ต้องมาจำว่าลงอะไรไปบ้าง
หากเขียน > แล้วตามด้วยชื่อไฟล์แบบนี้ก็จะเป็นการบันทึกลงไฟล์ได้ทันที
ค้นหาแพ็กเกจที่ต้องการด้วย pip search
สามารถค้นหาแพ็กเกจที่ต้องการได้จากชื่อแพ็กเกจด้วย pip search แล้วจะได้รายชื่อแพ็กเกจที่เกี่ยวข้องมา
ได้
แสดงรายละเอียดของแพ็กเกจด้วย pip show
คำสั่ง pip show ใช้แสดงรายละเอียดของแพ็กเกจที่ลงไว้ได้
ได้
ถ้าเติม -f หรือ --files จะแสดงรายชื่อไฟล์ทั้งหมดที่ลงอยู่ในแพ็กเกจนั้น
import pip
อันที่จริง pip เองก็เป็นมอดูลหนึ่งใน python ด้วย สามารถลองเรียกใช้ได้ เพียงแต่ก็มักไม่ได้ใช้ทำอะไรมาก
ตัวอย่างเช่น
ข้อความที่ขึ้นระหว่างทำคำสั่ง
ปกติเวลาติดตั้งแพ็กเกจหรือทำอะไรจะเห็นขึ้นคำอธิบายมาประมาณนึง แต่ถ้าอยากให้อธิบายเหตุการณ์ทั้งหมดอย่าละเอียดยิบอาจใส่ -v หรือ --verbose
ในทางกลับกันถ้าไม่ต้องการให้ขึ้นข้อความอะไรเลยให้ใช้ -q หรือ --quiet แต่แบบนี้แพ็กเกจลงสำเร็จหรือมีปัญหาอะไรตรงไหนก็จะไม่อาจรู้ได้เลย
ถ้าต้องการบันทึกข้อความที่แสดงทั้งหมดไว้ในไฟล์ก็อาจใส่ --log
ตรวจดูเวอร์ชัน
หากต้องการดูเวอร์ชันของ pip ที่ลงอยู่ให้พิมพ์ -V หรือ --version
ได้
หาข้อมูลเพิ่มเติม
สุดท้าย ถ้าต้องการข้อมูลเพิ่มเติมให้พิมพ์ help หรือ -h หรือ --help จะบอกข้อมูลการใช้
และถ้าใส่ชื่อคำสั่งไปด้วยจะได้รายละเอียดของคำสั่งนั้นๆ
การอัปแพ็กเกจทั้งหมดเป็นเวอร์ชันล่าสุด
pip ไม่ได้เตรียมคำสั่งสำเร็จรูปสำหรับทำให้แพ็กเกจเป็นเวอร์ชั้นล่าสุดทั้งหมดได้ในทันที
แต่เราสามารถใช้คำสั่ง pip list -o เพื่อไล่รายชื่อแพ็กเกจที่ยังไม่ใช่เวอร์ชันล่าสุด จากนั้นสั่ง pip install -U ได้
ทั้งหมดนี้สามารถทำโดยอัตโนมัติด้วยวิธีต่างๆ จะเขียนคำสั่งซ้อนกันในเชลก็ได้ หรืออาจใช้ไพธอน โดยเรียกคำสั่งในเชลด้วย subprocess.check_output
ทั้งหมดนี้เป็นส่วนหนึ่งของวิธีการใช้ pip
รายละเอียดจริงๆยังมีอีกมากมาย สามารถไปอ่านเพิ่มเติมกันได้
นอกจาก pip แล้วก็ยังมีของอีกอย่างที่ใช้ลงแพ็กเกจได้คล้ายๆกันคือ conda อ่านรายละเอียดได้ใน https://phyblas.hinaboshi.com/20190118
Reference : https://phyblas.hinaboshi.com
Last updated