Tag: macOS

  • รัน python เวอร์ชันอื่นผ่าน terminal ของ macOS

    สรุปความ

    เป็นที่รู้กันดีอยู่แล้วว่า macOS จะมี python ติดมาอยู่แล้ว ถ้าอยากติดตั้งเวอร์ชันอื่นเพิ่มก็ทำได้ แต่จะ run ผ่าน terminal จะทำไม่ได้ หากอยากเรียกใช้ผ่าน terminal ต้องทำผ่านการกำหนด alias ไปยังโพลเดอร์ python ที่เราติดตั้งไป ซึ่งปกติจะอยู่ที่ /usr/local/bin/python3 หากเป็นเวอร์ชัน 3

    และถ้าอ่านใน docs.python.org ก็ไม่ได้แนะนำให้ทำ เนื่องจากอาจมีปัญหาอย่างอื่นตามมา เพราะ python ที่ติดตั้งมาจะถูกเรียกใช้จากบริการหลาย ๆ อย่างของระบบปฏิบัติการ และส่วนนี้อยู่ที่ /usr/bin/python3 ซึ่ง Apple จะเป็นผู้ดูแลและคอยอัพเดทตามความจำเป็นของเขา

    แต่โดยส่วนตัวแล้ว ผมก็อยากจะรันผ่าน terminal อยู่

    การทำ alias ให้รัน python ผ่าน terminal ได้

    ก่อนจะทำ ณ วันนี้ผมใช้ macOS Monterey 12.6.2 อยู่นะครับ โดยเท่าที่ลองเช็คเวอร์ชัน โดยใช้คำสั่ง

    python --version

    และได้ผลลัพธ์ออกมาเป็น

    username@u-mbp ~ % python --version
    zsh: command not found: python
    username@u-mbp ~ % 

    😁 โดยผมคิดว่าดีจัง เพราะ Apple เรียกใช้ python โดยใช้คำสั่ง python3 ซึ่งเราสามารถทำ alias ให้เรียกใช้ python เวอร์ชันอื่นที่เราติดตั้งไปได้ โดยที่ไม่น่าจะส่งผลกระทบอะไรต่อระบบปฏิบัติการและบริการอื่น ๆ ที่เกี่ยวข้อง

    โดยการทำ alias คือ การตั้งชื่อเล่นให้กับแอพ หรือโปรแกรมที่เราจะเรียกใช้ ซึ่งในที่นี้ก็คือ python เวอร์ชันใหม่ที่เราติดตั้งไป และสามารถทำได้โดยเพิ่มคำสั่ง alias ไว้ในไฟล์ .zprofile

    nano .zprofile

    และเพิ่ม 2 บรรทัดนี้เขาไป

    alias python=/usr/local/bin/python3
    alias pip=/usr/local/bin/pip3.11

    เสร็จแล้วให้บันทึกไฟล์โดยกด control + x แล้วกดปุ่ม y และกดปุ่ม return

    จากนั้นให้ใช้คำสั่ง exit เพื่อออกจาก terminal ปัจจุบัน แล้วเปิด terminal ใหม่ขึ้นมา แล้วลองใช้คำสั่ง python --version และ pip --version ใน terminal แล้วจะได้ผลลัพธ์ตามนี้

    username@u-mbp ~ % python –version
    Python 3.11.1
    username@u-mbp ~ % pip –version
    pip 22.3.1 from /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pip (python 3.11)
    username@u-mbp ~ %

    โดยถ้าเป็นแบบนี้แสดงว่า เราจะรันไฟล์ python ที่เราเขียนขึ้นโดยผ่าน terminal ได้แล้ว โดยผมจะลองโดยสร้างไฟล์ชื่อ test.py ซึ่งคำสั่งและผลลัพธ์แบบนี้

    username@u-mbp ~ % nano test.py
    username@u-mbp ~ % python test.py
    Hello! lungthi.com
    Now, you can run me via terminal.
    username@u-mbp ~ %

    ก็จะเห็นว่า ผมสามารถรัน code ที่เขียนขึ้นผ่าน terminal เป็นที่เรียบร้อย 😀

    ส่วนคนที่ไม่อยากทำ alias ก็สามารถใช้วิธีการที่ทาง python.org แนะนำเอาไว้ได้

    รันผ่าน IDLE

    วิธีที่ง่ายที่สุดในการรัน code ที่เขียนขึ้นคือใช้ IDLE

    รันผ่าน Python Launcher

    บน macOS หากเราติดตั้ง python เวอร์ชันใหม่เพิ่มเข้าไป ถ้าจะรันให้ลากไฟล์นั้นมาที่ Python Launcher

    หากจะรัน code ของ python เวอร์ชันใหม่บน macOS ให้ลากมาวางที่ไอคอนนี้

    หรือตั้งค่าให้ default application ให้ Python Launchcer เปิดไฟล์ .py

    หรือไม่ก็ต้องพิมพ์คำสั่งยาว ๆ (ยาวเกิ๊น 😟) โดยตรงคำว่า <your script here> ให้พิมพ์ชื่อไฟล์ที่เราจะ run

    cd '' && '/usr/local/bin/python3'  '<your script here>'  && echo Exit status: $? && exit 1