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.
Mục lục:
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:
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 đó.
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:
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.
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
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:
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 libssl
và libcrypto
:
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.
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
Để xem phiên bản Python vừa cài đặt, gõ lệnh:
python3.11 --version
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
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
Để 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:
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'
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
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:
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 python
và pip
thay cho tên gốc là python3.11
và pip3.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
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:
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.
When I originally commented I appear to have clicked the -Notify me when new comments are added- checkbox and from now on every time a comment is added I receive four emails with the same comment. There has to be a way you can remove me from that service? Many thanks!
Thanks for your question. This will help us to improve our website in the future.
Please contact us at infor@testingwordpress.com for detail and more. Thanks again !!!