Python được biết đến như một công cụ hỗ trợ mạnh mẽ giúp các lập trình viên có thể phát triển ứng dụng, phần mềm một cách nhanh chóng, dễ dàng. Trong bài viết dưới đây, chúng tôi sẽ hướng dẫn bạn cách cài đặt Python 3 và tạo môi trường lập trình trên CentOS 7.

Giới thiệu

Python là một ngôn ngữ lập trình cực kỳ linh hoạt, đa năng có thể áp dụng được trong nhiều dự án lập trình khác nhau. Lần đầu được ra mắt vào năm 1991, cái tên này được lấy cảm hứng dựa trên nhóm hài người Anh Monty Python, nhóm phát triển mong muốn biến Python thành một ngôn ngữ thân thiện và thú vị. Với thế mạnh như dễ dàng thiết lập, cú pháp đơn giản, phản hồi lỗi nhanh chóng, Python đang là lựa chọn lý tưởng với người mới cũng như các nhà phát triển.

Yêu cầu

Người dùng sẽ chỉ cần một máy tính chạy CentOS 7, sử dụng account non-root user được cấp quyền sudo, và dĩ nhiên là máy tính phải kết nối Internet.

Bước 1: Chuẩn bị hệ thống

Trong bài hướng dẫn này, người dùng sẽ sẽ tương tác hệ thống bằng các dòng lệnh (command line). Trong trường hợp máy của bạn đang sử dụng bản CentOS 7 có giao diện đồ họa người dùng (GUI – graphical user interface), bạn sẽ truy cập giao diện command line tên Terminal như sau:

Vị trí tìm Terminal
Vị trí tìm Terminal

Trên màn hình chính, góc trái trên cùng chọn mục Application, menu drop-down danh sách ứng dụng hệ thống, chọn mục System Tools, menu khác sẽ hiện ra và người dùng sẽ thấy Terminal ở cuối menu này.

Ngoài ra còn một cách khác nhanh hơn rất nhiều: vẫn trên màn hình chính, người dùng chọn chuột phải để hiện menu phụ trợ, lúc này bạn sẽ thấy mục Terminal trong đó.

Cách tìm Terminal nếu có GUI
Cách tìm Terminal nếu có GUI

Sau khi thực hiện một trong hai cách trên (chỉ áp dụng cho bản CentOS 7 có sử dụng GUI), bạn sẽ mở giao diện dòng lệnh Terminal như sau:

Giao diện Terminal command
Giao diện Terminal command

Tiếp theo người dùng cần đảm bảo đã cập nhật đầy đủ các ứng dụng mặc định của hệ thống lên các bản mới nhất.

Trong CentOS, bạn sẽ dùng công cụ quản lý package mã nguồn mở tên là yum (Yellowdog Updater Modified). Đây là công cụ chuyên dụng để làm việc với các package phần mềm hệ thống Linux dựa trên Red Hat như CentOS. yum cho phép người dùng dễ dàng cài đặt, cập nhật hay gỡ bỏ các package trên hệ thống của mình.

Từ đây, vì đang sử dụng user non-root, mỗi câu lệnh của bạn sẽ có thêm sudo, đầu lệnh cho phép các user không được phân quyền có thể thực hiện các lệnh mà chỉ root user mới có quyền.

Người dùng cũng cần lưu ý khi dùng lệnh sudo, hệ thống sẽ yêu cầu người dùng nhập mật khẩu của user hiện tại để tiếp tục.

Quay lại với bảng command line, đầu tiên bạn sẽ cần cập nhật hệ thống với lệnh yum:

sudo yum -y update

Với flag (cờ tùy chọn) -y, dùng để cảnh báo hệ thống đang có sự thay đổi từ phía người dùng cũng như ngăn terminal ngắt quãng quá trình qua việc yêu cầu xác nhận. Lúc này bạn sẽ cần chờ một lúc để hệ thống làm việc.

Cập nhật hệ thống
Cập nhật hệ thống

Tiếp theo là cài đặt yum-utils, đây là bộ các tiện ích và plugin cần thiết để thêm vào gói mở rộng cho yum.

sudo yum -y install yum-utils

Trong hầu hết trường hợp thì các gói bổ sung không thiếu các plugin hay tiện tích đi kèm trừ một vài bản OS tùy biến riêng, do đó có thể bỏ qua.

Python hiện nay không còn có sẵn trong reposities chính thức của hệ CentOS 7 / RHEL 7 nữa. Tuy nhiên bạn có thể cài được từ nguồn bên ngoài, tất nhiên cũng cần cài sẵn trước các package đi kèm quan trọng.

sudo yum -y install epel-release
sudo yum install wget make cmake gcc bzip2-devel libffi-devel zlib-devel
Cài đặt các bản EPEL mới
Cài đặt các bản EPEL mới
Cài đặt các bản dependency cho Python
Cài đặt các bản dependency cho Python

Một điều nữa là các công cụ phát triển phụ trợ (Development Tools):

sudo yum -y groupinstall development

Cũng như yum-utils, thông thường các gói cài đặt này sẽ được cài sẵn theo hệ thống hoặc đi theo các bản dependency do đó bạn có thể bỏ qua phần lệnh này.

Sau đó người dùng cũng có thể kiểm tra phiên bản GCC (GNU Compiler Collection) để đảm bảo vấn đề tương thích.

gcc --version

Mặc định output như sau:

Kiểm tra phiên bản gcc
Kiểm tra phiên bản gcc

Tới đây, máy của bạn đã sẵn sàng cài đặt Python mới.

Bước 2: Cài đặt và thiết lập Python 3

Cập nhật OpenSSL

Như đã nói, Python mới nhất hiện nay là Python 3 (cụ thể từ v3.7 trở đi) và đã không còn được cài sẵn theo các package EPEL hay gói bổ trợ.

Đối với CentOS 7, mặc định bản Python theo hệ thống là v2.7.5 nhưng bản này đã ngưng hỗ trợ từ nhiều năm trước. Sau này với các bản CentOS 7 đã có bản mới hơn là v3.6.8 tuy nhiên cũng đã ngưng hỗ trợ vào Tháng 12 năm 2021. Do đó người dùng chỉ có thể sử dụng bản mới nhất thông qua cài từ mã nguồn ngoài hoặc trang chủ của ngôn ngữ này.

Khi cài đặt Python v3.11 sẽ yêu cầu openssl 1.1.1 trở đi trong bản có sẵn đã cũ, nên bạn sẽ bắt đầu từ việc cài và cấu hình openssl trước. (Nếu hệ thống của bạn đã đáp ứng phần này có thể bỏ qua và qua phần tiếp theo)

Trước hết gõ lệnh sau để cài các gói phụ trợ:

sudo yum install perl-IPC-Cmd perl-Test-Simple

Tải và cài đặt bản OpenSSL mới. Người dùng có thể vào trang chủ để xem thông tin về bản mới, trong bài viết sẽ chọn bản 3.0.0 làm ví dụ.

cd /usr/src
sudo wget https://www.openssl.org/source/openssl-3.0.0.tar.gz

Lưu ý: vì đang sử dụng user non-root, do đó các câu lệnh liên quan tới thay đổi các file hệ thống đều phải bắt đầu bằng sudo.

Bạn sẽ chờ một lúc để quá trình tải file nén hoàn thành. Sau đó hãy giải nén file:

sudo tar -zxf openssl-3.0.0.tar.gz

Lúc này người dùng có thể xóa file vừa tải hoặc không:

sudo rm openssl-3.0.0.tar.gz

Tiến hành thiết lập, khởi tạo, kiểm thử và cài đặt OpenSSL: (cần mở thư mục vừa giải nén trước)

cd /usr/src/openssl-3.0.0
sudo ./config
sudo make
sudo make test
sudo make install

Ở phần này sẽ cần chờ lâu hơn và người dùng không được can thiệp hay ngừng tiến trình để tránh lỗi compile. Trong quá trình chạy đôi lúc bạn sẽ thấy có một hoặc hai component không được hỗ trợ test nhưng điều này là bình thường.

Tiếp theo bạn sẽ tạo liên kết symlink giữa file libssllibcrypto:

sudo ln -s /usr/local/lib64/libssl.so.3 /usr/lib64/libssl.so.3
sudo ln -s /usr/local/lib64/libcrypto.so.3 /usr/lib64/libcrypto.so.3

Cuối cùng bạn sẽ kiểm tra lại xem OpenSSL mới đã cài bằng lệnh sau:

openssl version

Nếu output như hình đồng nghĩa quá trình cập nhật đã hoàn tất.

Kiểm tra phiên bản openssl
Kiểm tra phiên bản openssl

Cài đặt Python mới

Đối với bài hướng dẫn này, chúng tôi sẽ chọn bản 3.11.0 làm ví dụ, còn người dùng có thể chọn các bản khác nhau tùy theo ý muốn.

Tải file mã nguồn Python từ trang chủ:

sudo wget https://www.python.org/ftp/python/3.11.0/Python-3.11.0.tgz

Giải nén file vừa tải:

sudo tar xvf Python-3.11.0.tgz

Mở file vừa giải nén:

cd Python-3.11.0

Chỉ định, kiểm tra hệ thống cấu hình bản build Python mới:

LDFLAGS="${LDFLAGS} -Wl,-rpath=/usr/local/openssl/lib" ./configure --with-openssl=/usr/local/openssl 
make

Người dùng sẽ chờ thêm một lúc để quá trình hoàn tất. Lúc này hệ thống sẽ có khuyến nghị bạn chạy lệnh tối ưu cấu hình file và điều này là cần thiết:

./configure --enable-optimizations

Sau đó tiến hành cài Python 3.11 vào CentOS 7:

sudo make altinstall
Hoàn tất cài đặt Python mới trên CentOS 7
Hoàn tất cài đặt Python mới trên CentOS 7

Để xem phiên bản Python vừa cài đặt, gõ lệnh:

python3.11 --version
Kiểm tra Python 3 trên CentOS 7
Kiểm tra Python 3 trên CentOS 7

Lưu ý: bạn phải gõ đúng tên của phiên bản mong muốn, vì bản mặc định đi kèm CentOS vẫn còn hoạt động, do đó nếu không chính xác, hệ thống sẽ hiểu rằng người dùng đang gọi lệnh từ bản cũ.

Người dùng sẽ cần xác nhận thư viện của OpenSSL đã hoạt động như sau:

python3.11
>>> import ssl
>>> ssl.OPENSSL_VERSION
Khởi chạy thử Python 3 trên CentOS 7
Khởi chạy thử Python 3 trên CentOS 7

Lúc này người dùng đã cài đặt thành công Python mới lên CentOS 7.

Pip3.11 (tùy chọn)

Bên cạnh đó, PIP cũng được cài sẵn trong quá trình cài đặt Python, để xem phiên bản của pip, dùng lệnh:

pip3.11 --version
Kiểm tra phiên bản PIP
Kiểm tra phiên bản PIP

Để nâng cấp lên package mới dùng lệnh: pip3.11 install --upgrade pip

Cài đặt module bất kỳ bằng Pip, cú pháp: sudo pip3.11 install <ten_module>

Ví dụ bạn cần cài giao diện lệnh của AWS: pip3.11 install awscli

Đặt Python mới làm bản mặc định (tùy chọn)

Như đã nói, phiên bản mặc định là v2.7.5 nên dù cài bản mới thành công thì trong quá trình sử dụng sẽ có lúc không tránh được các vấn đề không mong muốn, do đó việc đặt Python 3 làm mặc định là điều khá hữu ích.

Xác định vị trí cài bản mới:

which python3.11

Kết quả output sẽ như sau:

Set mặc định Python 3 trên CentOS 7
Set mặc định Python 3 trên CentOS 7

Thêm Alias vào bash_profile: nghĩa là khi người dùng gọi Python, hệ thống sẽ ưu tiên tải bản mới (3.11) thay vì bản mặc định đi kèm.

Bạn có thể dùng vi hoặc nano text editor (công cụ chỉnh sửa văn bản) và mở file bash:

sudo nano ~/.bash_profile

Thêm dòng lệnh sau vào trong file đang mở:

alias python='/usr/local/bin/python3.11'
Gán tên mặc định của Python cho CentOS 7
Gán tên mặc định của Python cho CentOS 7

Sau đó lưu và đóng file (với nano, nhấn Ctrl-X, gõ Y và nhấn Enter).

Tải lại bash_profile:

source ~/.bash_profile

Cuối cùng kiểm tra kết quả bằng lệnh : python --version

Hoàn tất thiết lập Python 3 trên CentOS 7
Hoàn tất thiết lập Python 3 trên CentOS 7

Bước 3: Thiết lập môi trường giả lập

Bây giờ, người dùng tiến hành khởi tạo một môi trường lập trình với “venv“.

Lợi ích của việc này là giúp bạn kiểm soát hoàn toàn các dự án Python mà không ảnh hưởng đến hệ thống chung, cũng như xử lí được các vấn đề về sự khác nhau giữa các phiên bản, nhất là khi bạn phải sử dụng thêm các package từ bên thứ ba.

Trước tiên, bạn cần tạo thư mục, nơi sẽ lưu trữ các file nguồn dự án:

mkdir environments
cd environments

Tại đây, người dùng bắt đầu tạo môi trường:

python -m venv myenv

Trong bài hướng dẫn này, chúng tôi sẽ lấy tên là myenv.

Mở file môi trường và dùng lệnh ls và bạn sẽ thấy có những file như hình:

Tạo môi trường chạy Python
Tạo môi trường chạy Python

Các file này sẽ làm việc cùng nhau và đảm bảo dự án Python của bạn tách biệt khỏi hệ thống chung mà không bị trộn lẫn. Đây là một cách hay để kiểm soát dự án cũng như phân quyền đủ cho truy cập các file cụ thể mà dự án cần.

Để kích hoạt môi trường và sử dụng, người dùng sẽ dùng lệnh sau để gọi script kích hoạt nằm trong thư mục bin:

source activate
(myenv) [nam@localhost bin]$ 

Như đã thấy, môi trường bắt đầu hoạt động, prefix (tiết đầu ngữ) dòng lệnh sẽ có tên môi trường nằm phía trước, ở đây là myenv. Điều này cũng cho biết khi người dùng tạo các chương trình ở đây, chúng sẽ chỉ dùng các cài đặt và package của chính môi trường này.

Lưu ý: bạn có thể dùng pythonpip thay cho tên gốc là python3.11pip3.11.

Môi trường đã sẵn sàng, người dùng có thể thử nghiệm các chương trình đơn giản lên trên đây.

Bước 4: Khởi tạo chương trình đơn giản

Chương trình quen thuộc nhất trong lập trình chính là “Hello, World!”. Bạn có thể dùng để kiểm tra trạng thái hoạt động của môi trường ổn hay chưa.

Dùng vi hoặc nano và tạo một file python tên là “hello.py”

(myenv) [nam@localhost ~]$ nano hello.py
Tạo file project Python mới
Tạo file project Python mới

Hãy gõ một vài dòng lệnh vào trong file:

print("This is my Python environment !")
print("Hello, World !")

Lưu lại và đóng file.

Chạy thử chương trình bằng cách gõ lệnh dưới:

(myenv) [nam@localhost ~]$ python hello.py 

Người dùng sẽ nhìn thấy output như hình:

Kiểm tra kết quả
Kiểm tra kết quả

Khi muốn ngừng kích hoạt hay thoát khỏi môi trường hãy gõ deactivate, bạn sẽ quay về bảng Terminal thường của CentOS 7.

Lời kết

Như vậy bạn đã cài đặt thành công Python bản mới nhất, thiết lập môi trường và khởi tạo dự án Python cho riêng mình trên CentOS 7. Cảm ơn bạn đã theo dõi bài viết.

By admin

2 thoughts on “Hướng dẫn cài đặt Python 3 và thiết lập môi trường lập trình local trên CentOS 7”

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *