Cài đặt Python trên Ubuntu

Đôi khi có thể làm việc trên các dự án khác nhau cùng lúc với các phiên bản python khác nhau. Thông thường, sử dụng Miniconda hoặc Anaconda là giải pháp dễ dàng nhất, nhưng nếu nhóm của bạn sử dụng gói python-venv để quản lý môi trường ảo, thì cần phải tuân theo quy ước tương tự. 

Trong bài viết này, tôi sẽ đưa ra các bước để cài đặt nhiều phiên bản python và cách chuyển đổi giữa các phiên bản khác nhau và sử dụng chúng khi cần thiết.

Cài Python 2.7: 

sudo apt install python-minimal

Bây giờ nếu chạy lệnh python -V, bạn sẽ nhận được đầu ra 2.7.12. Thông thường đường dẫn cài đặt là /usr/bin/python.

Cài Python 3.5:

sudo apt install python3

Bây giờ nếu bạn chạy lệnh python -V, bạn sẽ nhận được đầu ra 3.5.2. Thông thường đường dẫn cài đặt sẽ là /usr/bin/python3.5.

Cài Python 3.6:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.6

Bây giờ nếu bạn chạy lệnh python -V, bạn sẽ nhận được đầu ra là 3.6.10. Thông thường đường dẫn cài đặt sẽ là /usr/bin/python3.6.

Cài Python 3.7:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7

Bây giờ nếu bạn chạy lệnh python -V, bạn sẽ nhận được đầu ra 3.7.6. Thông thường đường dẫn cài đặt sẽ là /usr/bin/python3.7.

Cài Python 3.8:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8

Bây giờ nếu bạn chạy lệnh python -V, bạn sẽ nhận được đầu ra 3.8.1. Thông thường đường dẫn cài đặt sẽ là /usr/bin/python3.8.

Làm thế nào để chuyển đổi giữa các phiên bản python khác nhau?

Nếu có nhiều phiên bản python được cài đặt trong hệ thống của mình, thì python sẽ chỉ sử dụng một tệp thực thi. Thông thường, nếu chạy một chương trình có tên là program.py bởi ‘python program.py’, thì chương trình này sẽ được chạy bởi python2.7. Nếu kiểm tra phiên bản python bằng ‘python -V’, nó sẽ trả về 2.7.12. Nhưng nếu muốn 3.5 là kết quả của ‘python -V’ và chương trình sẽ được chạy bởi tệp thực thi python 3.5, thì chúng ta có thể thay đổi tệp thực thi python mặc định theo hai cách.

Tạo alias trong bashrc:

Ta có thể tạo một alias trong thư mục home của người dùng và thêm nó vào bashrc. Nhưng nó sẽ chỉ hoạt động cho người dùng hiện tại. 
Mở tệp bashrc bằng lệnh sau: nano ~/.bashrc
Thêm dòng sau vào bên dưới của tệp bashrc:

    alias python=‘/usr/bin/python3.5’

Bây giờ nếu chúng ta kiểm tra phiên bản python bằng cách sử dụng ‘python -V’, nó sẽ trả về 3.5.2. Và nếu chúng tôi chạy tệp program.py bằng cách sử dụng ‘python program.py’, thì nó sẽ được chạy bởi tệp thực thi python3.5.

Sử dụng update-alternatives

Để chuyển đổi giữa các phiên bản python trên tất cả người dùng, chúng ta có thể sử dụng lệnh update-alternatives.
Chúng ta sẽ đặt mức độ ưu tiên của từng phiên bản bằng cách sử dụng update-alternatives. Bản thực thi Python có mức ưu tiên cao nhất sẽ được sử dụng làm phiên bản python mặc định.
Chúng ta sẽ đặt mức độ ưu tiên bằng các lệnh sau:

    sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.5 2
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 3
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.7 4
    sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 5

Ở đây tôi đặt mức ưu tiên của python 2.7, 3.5, 3.6, 3.7, 3.8 là 1, 2, 3, 4, 5. Vì python3.8 có mức ưu tiên cao nhất, nên tệp thực thi mặc định của python bây giờ là python3.8.
Để chuyển đổi giữa bất kỳ phiên bản nào, chúng ta có thể sử dụng lệnh sau:

    sudo update-alternatives --config python


Giờ đây, tệp thực thi python mặc định có thể được thay đổi bằng cách đặt số lựa chọn tương ứng của nó. Ví dụ: nếu chúng ta nhập 4, python sẽ sử dụng python3.7 làm tệp thực thi mặc định.

Tạo môi trường ảo với các phiên bản python khác nhau

Làm theo các bước dưới đây để tạo môi trường ảo với phiên bản python cụ thể:

    #if venv package for that version is not installed already
    sudo apt install pythonX.x-venv
    python -m venv venv
    source venv/bin/activate
    python --version