Cách Quản Lý Và Chuyển Đổi Phiên Bản Python Trên Ubuntu: Hướng Dẫn Đầy Đủ Cho Người Mới

目次

1. Giới thiệu

Khi sử dụng Python trên Ubuntu, quản lý phiên bản Python là một điểm quan trọng.
Python thường xuyên được phát hành các phiên bản mới, và tùy vào môi trường phát triển, bạn có thể cần sử dụng các phiên bản khác nhau.

Tuy nhiên, trên Ubuntu có thể tồn tại nhiều phiên bản Python song song,
nên bạn sẽ thường gặp các trường hợp như:
“Muốn kiểm tra phiên bản Python hiện tại”
“Muốn sử dụng một phiên bản cụ thể”
“Muốn chuyển đổi phiên bản Python”
v.v.

Bài viết này sẽ hướng dẫn chi tiết cách kiểm tra, thay đổi và chuyển đổi phiên bản Python trên Ubuntu.
Kèm theo ví dụ lệnh thực tế, bài viết sẽ giải thích dễ hiểu để cả người mới cũng có thể làm theo, hãy theo dõi đến cuối nhé.

侍エンジニア塾

2. Kiểm tra phiên bản Python hiện tại 【Thử ngay!】

Trước tiên, chúng tôi sẽ giới thiệu cách kiểm tra phiên bản Python đã cài đặt trên Ubuntu hiện tại.

2.1 Cách đơn giản nhất (Kiểm tra trong 1 giây)

Cách đơn giản nhất để kiểm tra phiên bản Python trên Ubuntu là thực hiện lệnh sau trong Terminal.

python3 --version

Hoặc bạn cũng có thể dùng lệnh sau và sẽ nhận được kết quả tương tự.

python3 -V

Ví dụ thực hiện:

$ python3 --version
Python 3.10.6

Kết quả, phiên bản Python hiện tại sẽ được hiển thị như trên.

2.2 Sự khác biệt với python --version

Trên Ubuntu, lệnh python có thể trỏ đến Python 2,
do đó thông thường nên dùng python3 --version để kiểm tra phiên bản.

Bạn có thể kiểm tra xem python đã được cài đặt chưa bằng lệnh sau.

python --version

Nếu xuất hiện lỗi Command 'python' not found, có thể hệ thống chỉ cài Python 3.

2.3 Lấy thông tin phiên bản chi tiết hơn

Nếu muốn xem thông tin chi tiết hơn về phiên bản Python, hãy thực hiện lệnh sau.

python3 -VV

Ví dụ thực hiện:

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

Lệnh này sẽ hiển thị thêm thông tin về phiên bản GCC sử dụng để biên dịch, thời gian build, v.v.

2.4 Lấy phiên bản trong script Python

Nếu muốn lấy phiên bản Python trong một script, bạn có thể dùng module sys như sau:

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

Ví dụ thực hiện:

$ 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)

Sử dụng sys.version_info bạn sẽ lấy được từng thành phần của phiên bản (major, minor, micro) ở dạng số.

3. Thay đổi & quản lý phiên bản Python 【Thiết lập mặc định hệ thống】

Trên Ubuntu có thể đã cài đặt nhiều phiên bản Python.
Phần này sẽ hướng dẫn cách thay đổi phiên bản Python mặc định dùng cho toàn hệ thống.

3.1 Kiểm tra các phiên bản Python đã cài đặt

Đầu tiên, hãy kiểm tra các phiên bản Python đã cài trên Ubuntu.

ls /usr/bin/python*

Ví dụ thực hiện:

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

Nếu có nhiều phiên bản như trên, bạn có thể chọn phiên bản mặc định cho hệ thống.

3.2 Chuyển đổi Python mặc định bằng update-alternatives

Trên Ubuntu, bạn có thể dùng update-alternatives để chuyển đổi phiên bản Python mặc định.

Trước hết, kiểm tra cài đặt hiện tại:

sudo update-alternatives --display python

Nếu python chưa được đăng ký, hãy thực hiện lệnh sau để đăng ký:

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

Tiếp theo, chọn phiên bản mặc định:

sudo update-alternatives --config python

Ví dụ thực hiện:

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: 

Chỉ cần nhập số phiên bản muốn chọn, phiên bản Python mặc định sẽ được thay đổi.

3.3 Thay đổi symbolic link thủ công

Nếu không dùng update-alternatives, bạn cũng có thể thay đổi symbolic link để thiết lập Python mặc định.

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

Cách này giúp lệnh python trỏ tới python3.10 cho toàn hệ thống.

4. Cách chuyển đổi phiên bản Python theo từng dự án

Khi dùng Python trên Ubuntu, đôi khi bạn muốn quản lý phiên bản riêng cho từng dự án.
Ví dụ: dự án này cần Python 3.10, dự án khác lại cần Python 3.8.
Trong trường hợp này, sử dụng môi trường ảo (venv) hoặc pyenv sẽ rất tiện lợi.

Phần này sẽ giới thiệu cách sử dụng môi trường ảo và pyenv để chuyển đổi phiên bản Python một cách dễ dàng.

4.1 Quản lý phiên bản với venv theo từng môi trường

Python hỗ trợ venv (môi trường ảo) như một chức năng tiêu chuẩn.
Dùng venv, bạn có thể quản lý các phiên bản Python và thư viện riêng biệt cho từng thư mục dự án.

Tạo môi trường ảo với venv

Trước tiên, chuyển đến thư mục bạn muốn tạo môi trường ảo và chạy lệnh:

python3 -m venv myenv

Lệnh này sẽ tạo ra một môi trường ảo tên là myenv.

Kích hoạt môi trường ảo

Để kích hoạt môi trường ảo, chạy lệnh sau:

source myenv/bin/activate

Khi kích hoạt, prompt trên Terminal sẽ thay đổi.

(myenv) user@ubuntu:~/project$

Lúc này, mọi thao tác sẽ sử dụng Python bên trong môi trường ảo.

Kiểm tra phiên bản Python trong môi trường ảo

Để kiểm tra phiên bản Python trong môi trường ảo, dùng lệnh:

python --version

Hủy kích hoạt môi trường ảo

Để thoát khỏi môi trường ảo, hãy chạy lệnh:

deactivate

Với cách này, bạn có thể quản lý độc lập phiên bản và package Python cho từng dự án.

4.2 Quản lý phiên bản Python với pyenv

venv quản lý phiên bản trong từng môi trường ảo,
còn nếu muốn chuyển đổi Python toàn hệ thống, dùng pyenv sẽ thuận tiện hơn.

Cài đặt pyenv

Trước tiên, cài đặt pyenv bằng lệnh:

curl https://pyenv.run | bash

Sau khi cài đặt, chạy lệnh sau để cập nhật cấu hình:

exec $SHELL

Cài đặt phiên bản Python bằng pyenv

Để cài đặt một phiên bản Python qua pyenv, dùng lệnh:

pyenv install 3.10.6

Nếu muốn xem danh sách các phiên bản có thể cài, dùng lệnh:

pyenv install --list

Chuyển đổi phiên bản Python bằng pyenv

Để thay đổi Python toàn hệ thống, dùng lệnh:

pyenv global 3.10.6

Nếu muốn chuyển đổi chỉ trong một thư mục, dùng lệnh:

pyenv local 3.8.10

Kiểm tra phiên bản Python với pyenv

Để kiểm tra các phiên bản đã cài với pyenv, dùng lệnh:

pyenv versions

Nhờ đó, bạn có thể quản lý nhiều phiên bản Python cho các dự án khác nhau một cách dễ dàng.

5. Câu hỏi thường gặp (FAQ) 【Giải đáp sự cố】

Phần này sẽ giải đáp các thắc mắc và xử lý sự cố thường gặp khi quản lý phiên bản Python trên Ubuntu.

Q1: pythonpython3 khác nhau như thế nào?

Trên Ubuntu, python3 là mặc định, còn python đôi khi trỏ đến Python 2.
Do đó, nên sử dụng python3 --version để kiểm tra phiên bản với môi trường mới.

Q2: Khi dùng python --version kết quả không đúng ý, nên làm gì?

Bạn có thể thay đổi Python mặc định bằng update-alternatives hoặc pyenv.

  • Cách dùng update-alternatives:
sudo update-alternatives --config python
  • Cách dùng pyenv:
pyenv global 3.10.6

Q3: Vì sao python3 --version thì chạy được, mà python thì không?

Có thể hệ thống chưa cài đặt lệnh python.
Tạo symbolic link cho python bằng lệnh sau để khắc phục:

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

Q4: Làm sao để gỡ Python cũ trên Ubuntu?

Trước hết, kiểm tra các phiên bản Python đã cài:

apt list --installed | grep python

Nếu muốn gỡ phiên bản cụ thể, dùng lệnh:

sudo apt remove python3.6

Q5: Gỡ Python cũ có ảnh hưởng đến Ubuntu không?

Một số công cụ hệ thống của Ubuntu phụ thuộc vào phiên bản Python nhất định,
vì vậy hãy kiểm tra với python3 --version để chắc chắn vẫn còn phiên bản cần thiết.

Trước khi gỡ, nên kiểm tra các phiên bản Python hiện có:

apt list --installed | grep python

6. Tổng kết & Bài viết nên đọc tiếp theo

Đến đây, bạn đã hiểu rõ cách kiểm tra, thay đổi và chuyển đổi phiên bản Python trên Ubuntu.

  • Kiểm tra phiên bản Pythonpython3 --version
  • Thay đổi phiên bản toàn hệ thốngupdate-alternatives hoặc ln -sf
  • Quản lý phiên bản theo dự ánvenv (môi trường ảo) hoặc pyenv

Đặc biệt, dùng pyenv sẽ giúp quản lý phiên bản Python dễ dàng.
Nếu bạn muốn “dùng nhiều phiên bản cho các dự án khác nhau” hoặc “thay đổi Python mặc định”, hãy thử pyenv nhé.

Trang liên quan

Pythonプログラミングの世界

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

 

年収訴求