目次

1. แนะนำเบื้องต้น

เมื่อใช้งาน Python บน Ubuntu การจัดการเวอร์ชันของ Python ถือเป็นจุดสำคัญอย่างมาก
เนื่องจาก Python มีการออกเวอร์ชันใหม่อย่างสม่ำเสมอ และในแต่ละสภาพแวดล้อมการพัฒนา อาจต้องใช้เวอร์ชันที่แตกต่างกัน

อย่างไรก็ตาม ใน Ubuntu สามารถมี Python หลายเวอร์ชันติดตั้งพร้อมกันได้
ดังนั้นจึงมักพบกับสถานการณ์เช่น
“ต้องการตรวจสอบเวอร์ชัน Python ปัจจุบัน”
“ต้องการใช้งานเวอร์ชันเฉพาะ”
“อยากสลับเวอร์ชัน Python ที่ใช้งาน”
บทความนี้จะแนะนำวิธี ตรวจสอบ เปลี่ยน และสลับเวอร์ชันของ Python บน Ubuntu อย่างละเอียด
พร้อมตัวอย่างคำสั่งจริง อธิบายแบบเข้าใจง่าย แม้แต่ผู้เริ่มต้นก็ทำตามได้

年収訴求

2. ตรวจสอบเวอร์ชัน Python (ทำได้ทันที!)

ก่อนอื่น ขอแนะนำวิธีตรวจสอบเวอร์ชันของ Python ที่ติดตั้งใน Ubuntu ปัจจุบัน

2.1 วิธีที่ง่ายที่สุด (ตรวจสอบได้ภายใน 1 วินาที)

วิธีที่ง่ายและรวดเร็วที่สุดคือ เปิดเทอร์มินัลแล้วรันคำสั่งนี้

python3 --version

หรือจะใช้คำสั่งนี้ก็ได้ ผลลัพธ์เหมือนกัน

python3 -V

ตัวอย่างผลลัพธ์:

$ python3 --version
Python 3.10.6

จะเห็นเวอร์ชัน Python ที่ใช้อยู่ในระบบ

2.2 ความแตกต่างระหว่าง python --version

บน Ubuntu คำสั่ง python อาจหมายถึง Python 2
ดังนั้นจึงแนะนำให้ใช้ python3 --version เป็นหลัก

เช็คว่า python ติดตั้งอยู่หรือไม่ ด้วยคำสั่งนี้

python --version

หากขึ้นว่า Command 'python' not found หมายความว่า มีแค่ Python 3 เท่านั้นในระบบ

2.3 ตรวจสอบข้อมูลเวอร์ชันอย่างละเอียด

หากต้องการดูรายละเอียดเวอร์ชันเพิ่มเติม ให้ใช้คำสั่งนี้

python3 -VV

ตัวอย่างผลลัพธ์:

$ python3 -VV
Python 3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]

จะเห็นข้อมูลเกี่ยวกับ GCC ที่ใช้คอมไพล์และเวลาที่บิลด์โปรแกรม

2.4 ตรวจสอบเวอร์ชันในสคริปต์ Python

ถ้าต้องการตรวจสอบเวอร์ชันจากในสคริปต์ Python ให้ใช้ sys module

import sys
print(sys.version)
print(sys.version_info)

ตัวอย่างผลลัพธ์:

$ python3 script.py
3.10.6 (main, Jan 16 2024, 11:25:20) [GCC 11.2.0]
sys.version_info(major=3, minor=10, micro=6, releaselevel='final', serial=0)

สามารถดึงค่าหลักต่างๆ ของเวอร์ชัน (major, minor, micro) ได้จาก sys.version_info

3. เปลี่ยน/จัดการเวอร์ชัน Python (ตั้งค่าเวอร์ชันเริ่มต้นของระบบ)

ใน Ubuntu สามารถติดตั้ง Python หลายเวอร์ชันพร้อมกันได้
ในส่วนนี้จะแนะนำวิธีเปลี่ยน Python เวอร์ชันหลักที่ใช้งานทั้งระบบ

3.1 ตรวจสอบ Python ที่ติดตั้งอยู่ทั้งหมด

ก่อนอื่น ตรวจสอบว่ามี Python เวอร์ชันใดบ้างในระบบ

ls /usr/bin/python*

ตัวอย่างผลลัพธ์:

$ ls /usr/bin/python*
/usr/bin/python3  /usr/bin/python3.8  /usr/bin/python3.10

หากมีหลายเวอร์ชัน สามารถเลือกกำหนดเวอร์ชันที่ต้องการให้เป็นค่าเริ่มต้นได้

3.2 สลับเวอร์ชัน Python ด้วย update-alternatives

Ubuntu รองรับการสลับ Python หลักผ่าน update-alternatives

ตรวจสอบสถานะปัจจุบันด้วย

sudo update-alternatives --display python

หากยังไม่ได้ลงทะเบียน ให้เพิ่มทางเลือกด้วย

sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2

เลือกเวอร์ชันหลักที่ต้องการด้วย

sudo update-alternatives --config python

ตัวอย่างผลลัพธ์:

There are 2 choices for the alternative python (providing /usr/bin/python).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/python3.10  1         auto mode
  1            /usr/bin/python3.10  1         manual mode
  2            /usr/bin/python3.8   2         manual mode

Press <enter> to keep the current choice[*], or type selection number: 

ใส่หมายเลขเวอร์ชันที่ต้องการเปลี่ยน แล้วกด Enter

3.3 เปลี่ยนซิมลิงก์ด้วยตนเอง

หากไม่ใช้ update-alternatives สามารถแก้ไข symlink ด้วยตนเองได้

sudo ln -sf /usr/bin/python3.10 /usr/bin/python

หลังจากนี้ python จะชี้ไปที่ python3.10 ทั่วทั้งระบบ

4. วิธีสลับเวอร์ชัน Python แยกตามแต่ละโปรเจกต์

บางครั้งอาจต้องการ จัดการเวอร์ชัน Python แตกต่างกันในแต่ละโปรเจกต์
เช่น โปรเจกต์หนึ่งใช้ Python 3.10 อีกโปรเจกต์ใช้ Python 3.8
ในกรณีนี้ควรใช้ virtual environment (venv) หรือ pyenv เพื่อความสะดวก

ส่วนนี้จะแนะนำวิธี สลับเวอร์ชัน Python ได้ง่ายๆ ด้วย venv และ pyenv

4.1 จัดการเวอร์ชันด้วย venv (Virtual Environment)

Python มีฟีเจอร์ venv (virtual environment) มาตรฐาน
สามารถจัดการเวอร์ชัน Python และไลบรารีแยกในแต่ละโฟลเดอร์โปรเจกต์ได้

สร้าง virtual environment ด้วย venv

cd ไปยังโฟลเดอร์ที่ต้องการสร้าง virtual environment แล้วรัน

python3 -m venv myenv

จะได้โฟลเดอร์ myenv ที่เป็น virtual environment

เปิดใช้งาน virtual environment

รันคำสั่งนี้เพื่อ activate

source myenv/bin/activate

เมื่อ activate แล้ว prompt จะเปลี่ยน

(myenv) user@ubuntu:~/project$

ขณะนี้จะใช้ Python ที่อยู่ใน virtual environment

เช็คเวอร์ชัน Python ใน virtual environment

ตรวจสอบเวอร์ชัน Python ใน virtual environment ด้วย

python --version

ปิด virtual environment

ต้องการออกจาก virtual environment ให้ใช้

deactivate

วิธีนี้จะช่วยให้ บริหารจัดการเวอร์ชัน Python และไลบรารีแยกตามโปรเจกต์ได้อย่างอิสระ

4.2 ใช้ pyenv สำหรับจัดการเวอร์ชัน Python

venv จะช่วยแยกเวอร์ชันในแต่ละ virtual environment
แต่หากอยากสลับ Python เวอร์ชันทั้งระบบอย่างยืดหยุ่น แนะนำให้ใช้ pyenv

ติดตั้ง pyenv

ติดตั้ง pyenv บน Ubuntu ด้วยคำสั่งนี้

curl https://pyenv.run | bash

หลังติดตั้ง รันคำสั่งนี้เพื่อ refresh environment

exec $SHELL

ติดตั้ง Python เวอร์ชันใหม่ผ่าน pyenv

ติดตั้ง Python เวอร์ชันที่ต้องการด้วย

pyenv install 3.10.6

ตรวจสอบเวอร์ชันที่ติดตั้งได้ด้วย

pyenv install --list

สลับเวอร์ชัน Python ด้วย pyenv

เปลี่ยน Python เวอร์ชันหลักของระบบ

pyenv global 3.10.6

หรือสลับเฉพาะไดเรกทอรี

pyenv local 3.8.10

เช็คเวอร์ชันปัจจุบันด้วย pyenv

ดูว่าใช้เวอร์ชันใดอยู่ใน pyenv

pyenv versions

วิธีนี้ ช่วยให้บริหารจัดการเวอร์ชัน Python สำหรับแต่ละโปรเจกต์ได้อย่างง่ายดาย

5. คำถามที่พบบ่อย (FAQ) และการแก้ปัญหา

รวมข้อสงสัยและแนวทางแก้ปัญหาเกี่ยวกับการจัดการเวอร์ชัน Python บน Ubuntu

Q1: python กับ python3 ต่างกันอย่างไร?

บน Ubuntu python3 เป็นค่าเริ่มต้น ส่วน python อาจหมายถึง Python 2
ดังนั้นควรใช้ python3 --version เป็นหลัก

Q2: กรณี python --version แสดงเวอร์ชันไม่ตรงตามที่ต้องการ?

สามารถเปลี่ยนค่า default ด้วย update-alternatives หรือ pyenv

  • ใช้ update-alternatives:
sudo update-alternatives --config python
  • ใช้ pyenv:
pyenv global 3.10.6

Q3: ทำไม python3 --version ใช้ได้ แต่ python ไม่ได้?

อาจไม่มี python ติดตั้งไว้
แก้ไขด้วยการสร้าง symlink ดังนี้

sudo ln -sf /usr/bin/python3 /usr/bin/python

Q4: จะลบ Python เวอร์ชันเก่าออกจาก Ubuntu ได้อย่างไร?

เช็คก่อนว่าติดตั้ง Python อะไรอยู่บ้าง

apt list --installed | grep python

ถ้าต้องการลบเวอร์ชันที่ไม่ใช้

sudo apt remove python3.6

Q5: หากลบ Python เวอร์ชันเก่า Ubuntu จะมีปัญหาไหม?

บางฟีเจอร์ระบบของ Ubuntu อาจผูกกับ Python เวอร์ชันใดเวอร์ชันหนึ่ง
ควรตรวจสอบด้วย python3 --version ว่ายังมีเวอร์ชันที่จำเป็นเหลืออยู่
ตรวจสอบ Python ที่ติดตั้งก่อนจะลบ

apt list --installed | grep python

6. สรุป & บทความแนะนำถัดไป

ในบทความนี้ ได้อธิบาย วิธีตรวจสอบ เปลี่ยน และสลับเวอร์ชัน Python บน Ubuntu อย่างละเอียด

  • ตรวจสอบเวอร์ชัน Pythonpython3 --version
  • เปลี่ยนเวอร์ชันหลักของระบบupdate-alternatives หรือ ln -sf
  • จัดการเวอร์ชันในแต่ละโปรเจกต์venv หรือ pyenv

โดยเฉพาะ pyenv ทำให้การจัดการเวอร์ชันง่ายขึ้น
หากต้องใช้หลายโปรเจกต์ หรืออยากเปลี่ยน Python หลักของระบบ แนะนำให้ลอง pyenv ดูครับ

เว็บไซต์ที่เกี่ยวข้อง

Pythonプログラミングの世界

Pythonプログラミングの世界へようこそ!初心者から上級者まで、Pythonの基礎から応用、データ分析やWeb開発まで…

 

年収訴求