Cách Kiểm Tra và Thay Đổi Phiên Bản Python trên Ubuntu: Hướng Dẫn Toàn Diện cho Các Nhà Phát Triển

.## 1. Giới thiệu

Khi sử dụng Python trên Ubuntu, quản lý các phiên bản Python trở thành một nhiệm vụ quan trọng.
Python thường xuyên nhận các bản phát hành mới, và tùy thuộc 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, Ubuntu có thể cài đặt nhiều phiên bản Python, dẫn đến các tình huống 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”
Những tình huống này xảy ra khá thường xuyên.

Bài viết này giải thích 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 các ví dụ lệnh, ngay cả người mới bắt đầu cũng có thể làm theo dễ dàng. Hãy đọc đến cuối để nắm rõ toàn bộ nội dung.

目次

2. Cách Kiểm Tra Phiên Bản Python Trên Ubuntu【Try It Now!】

Đầu tiên, chúng ta sẽ xem cách kiểm tra phiên bản Python hiện đang được cài đặt trên Ubuntu.

2.1 Cách Dễ 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à chạy lệnh sau trong terminal:

python3 --version

Bạn cũng có thể nhận được kết quả tương tự bằng cách sử dụng:

python3 -V

Ví dụ:

$ python3 --version
Python 3.10.6

Lệnh này sẽ hiển thị phiên bản Python hiện tại.

2.2 Sự Khác Biệt Giữa python --versionpython3 --version

Trên Ubuntu, lệnh python có thể trỏ tới Python 2.
Do đó, nên sử dụng python3 --version.

Bạn có thể kiểm tra xem python có được cài đặt hay không bằng cách chạy:

python --version

Nếu bạn thấy Command 'python' not found, có khả năng chỉ có Python 3 được cài đặt.

2.3 Lấy Thông Tin Phiên Bản Chi Tiết

Nếu muốn thông tin chi tiết hơn, chạy lệnh:

python3 -VV

Ví dụ:

$ 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ị các chi tiết như phiên bản GCC được dùng để biên dịch và ngày xây dựng.

2.4 Kiểm Tra Phiên Bản Python Trong Script

Nếu muốn kiểm tra phiên bản Python từ bên trong một script, sử dụng module sys:

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

Ví dụ:

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

Bằng cách dùng sys.version_info, bạn có thể lấy từng thành phần của phiên bản (major, minor, micro) dưới dạng số.

3. Cách Thay Đổi Hoặc Quản Lý Các Phiên Bản Python【Set System Default】

Ubuntu có thể cài đặt nhiều phiên bản Python.
Phần này giải thích cách thay đổi phiên bản Python mặc định cho toàn hệ thống.

3.1 Kiểm Tra Các Phiên Bản Python Đã Cài Đặt

Để kiểm tra các phiên bản Python đã được cài đặt, chạy lệnh:

ls /usr/bin/python*

Ví dụ:

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

Nếu có nhiều phiên bản, bạn có thể chọn phiên bản nào sẽ làm mặc định.

3.2 Chuyển Đổi Python Mặc Định Bằng update-alternatives

Bạn có thể chuyển đổi phiên bản Python mặc định bằng update-alternatives.

Đầu tiên, 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êm nó bằng lệnh:

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

Sau đó chọn phiên bản mặc định:

sudo update-alternatives --config python

Ví dụ:

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:

Nhập số của phiên bản bạn muốn chuyển sang.

3.3 Thay Đổi Liên Kết Symbolic Thủ Công

Bạn cũng có thể thay đổi liên kết tượng trưng thủ công thay vì sử dụng update-alternatives:

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

Điều này buộc lệnh python sử dụng python3.10 trên toàn hệ thống.

4. Cách Chuyển Đổi Phiên Bản Python Theo Dự Án

Khi làm việc với Python trên Ubuntu, bạn có thể muốn sử dụng các phiên bản Python khác nhau cho các dự án khác nhau.
Ví dụ, một dự án có thể yêu cầu Python 3.10, trong khi dự án khác có thể cần Python 3.8.
Trong những trường hợp như vậy, việc sử dụng môi trường ảo (venv) hoặc pyenv là cực kỳ hữu ích.

Phần này giải thích cách dễ dàng chuyển đổi phiên bản Python bằng cách sử dụng môi trường ảo và pyenv.

4.1 Quản Lý Phiên Bản Python Theo Môi Trường Sử Dụng venv

Python cung cấp venv (môi trường ảo) như một tính năng tiêu chuẩn.
Bằng cách sử dụng môi trường ảo, bạn có thể quản lý các phiên bản Python khác nhau hoặc thư viện trong các thư mục riêng lẻ.

Tạo Môi Trường Ảo Với venv

Di chuyển đến thư mục nơi bạn muốn tạo môi trường ảo, sau đó chạy:

python3 -m venv myenv

Điều này tạo một môi trường ảo có tên myenv.

Kích Hoạt Môi Trường Ảo

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

source myenv/bin/activate

Sau khi kích hoạt, dấu nhắc terminal sẽ thay đổi:

(myenv) user@ubuntu:~/project$

Trong khi đang hoạt động, phiên bản Python cụ thể của môi trường sẽ được sử dụng.

Kiểm Tra Phiên Bản Python Bên Trong Môi Trường

Để kiểm tra phiên bản Python bên trong môi trường ảo, chạy:

python --version

Hủy Kích Hoạt Môi Trường Ảo

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

deactivate

Sử dụng phương pháp này, bạn có thể quản lý phiên bản Python và các gói độc lập cho từng dự án.

4.2 Quản Lý Phiên Bản Python Sử Dụng pyenv

Trong khi venv quản lý Python theo từng dự án,
nếu bạn muốn tự do chuyển đổi phiên bản Python trên toàn hệ thống, pyenv rất tiện lợi.

Cài Đặt pyenv

Đầu tiên, cài đặt pyenv.
Để cài đặt pyenv trên Ubuntu, chạy:

curl https://pyenv.run | bash

Sau đó áp dụng các thiết lập với:

exec $SHELL

Cài Đặt Phiên Bản Python Với pyenv

Để cài đặt một phiên bản Python sử dụng pyenv:

pyenv install 3.10.6

Để kiểm tra tất cả các phiên bản có sẵn:

pyenv install --list

Chuyển Đổi Phiên Bản Python Với pyenv

Để thay đổi phiên bản Python toàn cục (trên toàn hệ thống):

pyenv global 3.10.6

Để thay đổi phiên bản Python cho một thư mục cụ thể:

pyenv local 3.8.10

Kiểm Tra Phiên Bản Python pyenv Hiện Tại

Để kiểm tra các phiên bản Python mà pyenv đang quản lý, chạy:

pyenv versions

Điều này cho phép bạn dễ dàng quản lý các phiên bản Python khác nhau theo từng dự án.

5. Câu Hỏi Thường Gặp (Khắc Phục Sự Cố)

Dưới đây là các câu hỏi phổ biến và mẹo khắc phục sự cố khi quản lý phiên bản Python trên Ubuntu.

Q1: Sự khác biệt giữa pythonpython3 là gì?

Trên Ubuntu, python3 là tiêu chuẩn, trong khi python có thể đề cập đến Python 2.
Do đó, sử dụng python3 --version được khuyến nghị.

Q2: Điều gì xảy ra nếu python --version hiển thị phiên bản không mong đợi?

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

  • Sử dụng update-alternatives :
    sudo update-alternatives --config python
    
  • Sử dụng pyenv :
    pyenv global 3.10.6
    

Q3: Tại sao python3 --version hoạt động nhưng python thì không?

Lệnh python có thể chưa được cài đặt.
Tạo liên kết tượng trưng để sửa lỗi:

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

Q4: Làm thế nào để xóa một phiên bản Python cũ trên Ubuntu?

Đầu tiên, liệt kê các gói Python đã cài đặt:

apt list --installed | grep python

Để xóa một phiên bản Python cụ thể:

sudo apt remove python3.6

Q5: Việc xóa phiên bản Python cũ có ảnh hưởng đến Ubuntu không?

Một số công cụ hệ thống Ubuntu phụ thuộc vào các phiên bản Python cụ thể.
Kiểm tra với:

python3 --version

Trước khi xóa bất cứ thứ gì, luôn kiểm tra những gì đã được cài đặt:

apt list --installed | grep python

6. Tóm tắt & Các bài viết được khuyến nghị

Trong hướng dẫn này, chúng tôi đã đề cập đến 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 hoặc pyenv

Sử dụng pyenv làm cho việc quản lý phiên bản Python trở nên đặc biệt dễ dàng.
Nếu bạn cần các phiên bản Python khác nhau cho nhiều dự án hoặc muốn thay đổi mặc định hệ thống, hãy thử sử dụng pyenv.

Trang web liên quan

Practical Python Programming

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

侍エンジニア塾