Kiến thức Hữu ích 😍

Hướng Dẫn Cài Đặt Python 3 Trên CentOS 7 Dễ Dàng


Chào mừng bạn đến với hướng dẫn chi tiết của AZWEB! Trong thế giới phát triển phần mềm hiện đại, Python 3 đã khẳng định vị thế là một ngôn ngữ lập trình mạnh mẽ, linh hoạt và được ưa chuộng hàng đầu. Cùng lúc đó, CentOS 7 lại là một hệ điều hành máy chủ nổi tiếng về sự ổn định và bảo mật, trở thành nền tảng cho vô số ứng dụng web. Tuy nhiên, một thách thức phổ biến mà nhiều nhà phát triển gặp phải là CentOS 7 mặc định đi kèm với Python 2.7, một phiên bản đã lỗi thời và không còn được hỗ trợ. Điều này tạo ra rào cản khi triển khai các dự án mới đòi hỏi tính năng và thư viện của Python 3. Mục tiêu của bài viết này là cung cấp một lộ trình rõ ràng, từ A-Z, giúp bạn cài đặt Python 3, thiết lập một môi trường lập trình ảo sạch sẽ và hiệu quả, cũng như tối ưu hóa quy trình làm việc trên CentOS 7. Chúng ta sẽ cùng nhau đi qua từng bước, từ chuẩn bị hệ thống, các phương pháp cài đặt, cấu hình môi trường cho đến xử lý sự cố thường gặp.

Cài đặt Python 3 trên CentOS 7

Bắt đầu hành trình thiết lập môi trường phát triển Python 3 trên CentOS 7 đòi hỏi sự chuẩn bị kỹ lưỡng và lựa chọn phương pháp cài đặt phù hợp. Việc này đảm bảo rằng hệ thống của bạn không chỉ có phiên bản Python mới nhất mà còn duy trì được sự ổn định vốn có. Chúng ta sẽ khám phá hai cách tiếp cận chính: sử dụng Software Collections (SCL) cho sự đơn giản và an toàn, và biên dịch từ mã nguồn để có toàn quyền kiểm soát phiên bản. Mỗi phương pháp đều có những ưu và nhược điểm riêng, phù hợp với các nhu cầu và kịch bản sử dụng khác nhau. Hãy cùng AZWEB đi sâu vào từng bước để đảm bảo quá trình cài đặt diễn ra suôn sẻ và chính xác, tạo nền tảng vững chắc cho các dự án của bạn.

Hình minh họa

Chuẩn bị trước khi cài đặt

Trước khi tiến hành cài đặt Python 3, bước đầu tiên và quan trọng nhất là kiểm tra và chuẩn bị hệ thống CentOS 7 của bạn. Thao tác này giúp tránh các xung đột và đảm bảo quá trình biên dịch hoặc cài đặt diễn ra thuận lợi. Đầu tiên, hãy xác định phiên bản Python hiện tại bằng lệnh python --version. Kết quả thường sẽ là Python 2.7.x, phiên bản mặc định của hệ thống.

Tiếp theo, việc cập nhật toàn bộ hệ thống là cực kỳ cần thiết để vá các lỗ hổng bảo mật và cập nhật thư viện. Hãy chạy lệnh sudo yum update -y và chờ quá trình hoàn tất. Sau khi hệ thống đã được cập nhật, chúng ta cần cài đặt các công cụ phát triển cần thiết cho việc biên dịch mã nguồn. Đây là các gói chứa trình biên dịch, thư viện và các tiện ích khác. Bạn có thể cài đặt chúng một cách dễ dàng bằng lệnh sudo yum groupinstall -y "Development Tools" và các gói phụ thuộc khác như sudo yum install -y openssl-devel bzip2-devel libffi-devel.

Hình minh họa

Cài đặt Python 3 bằng cách sử dụng Software Collections (SCL) và từ mã nguồn

Sau khi đã chuẩn bị xong, bạn có hai lựa chọn chính để cài đặt Python 3. Phương pháp đầu tiên, và cũng là phương pháp được khuyến khích cho hầu hết người dùng, là sử dụng Software Collections (SCL). SCL cho phép bạn cài đặt và sử dụng các phiên bản phần mềm mới hơn mà không ghi đè lên các gói mặc định của hệ thống, giúp duy trì sự ổn định. Để cài đặt qua SCL, bạn chỉ cần chạy hai lệnh đơn giản: sudo yum install -y centos-release-scl để kích hoạt kho lưu trữ SCL, và sau đó là sudo yum install -y rh-python38 để cài đặt Python 3.8. Ưu điểm của phương pháp này là nhanh chóng, an toàn và dễ quản lý thông qua yum. Tuy nhiên, nhược điểm là bạn có thể không có được phiên bản Python mới nhất.

Phương pháp thứ hai là biên dịch trực tiếp từ mã nguồn, cho phép bạn toàn quyền kiểm soát và cài đặt phiên bản Python mới nhất theo ý muốn. Đầu tiên, bạn cần tải mã nguồn từ trang chủ của Python. Sau đó, giải nén và thực hiện các lệnh ./configure --enable-optimizations, make, và quan trọng nhất là sudo make altinstall. Lệnh altinstall được sử dụng để ngăn việc ghi đè lên tệp thực thi python mặc định của hệ thống. Ưu điểm của cách này là bạn có phiên bản mới nhất và tùy chỉnh được quá trình cài đặt. Ngược lại, nó phức tạp hơn, tốn thời gian hơn và việc cập nhật sau này cũng phải thực hiện thủ công.

Hình minh họa

Tạo và cấu hình môi trường lập trình Python

Sau khi đã cài đặt thành công Python 3 trên CentOS 7, bước tiếp theo không kém phần quan trọng là tạo ra một không gian làm việc riêng biệt và sạch sẽ cho từng dự án. Đây chính là lúc các môi trường ảo phát huy tác dụng. Môi trường ảo là một thư mục độc lập chứa một bản cài đặt Python cụ thể cùng với các thư viện và gói phụ thuộc riêng. Việc sử dụng môi trường ảo giúp giải quyết triệt để vấn đề xung đột thư viện giữa các dự án khác nhau. Ví dụ, dự án A có thể cần phiên bản 1.0 của một thư viện, trong khi dự án B lại yêu cầu phiên bản 2.0. Nếu không có môi trường ảo, việc quản lý các yêu cầu này trên cùng một hệ thống sẽ trở thành một cơn ác mộng. Chúng ta sẽ tìm hiểu về venvvirtualenv, hai công cụ phổ biến nhất để tạo và quản lý các “hộp cát” lập trình này.

Giới thiệu về môi trường ảo virtualenv và venv

Khái niệm môi trường ảo là nền tảng cho việc phát triển Python một cách chuyên nghiệp. Hãy tưởng tượng mỗi dự án của bạn là một công trình xây dựng riêng biệt. Môi trường ảo chính là nhà kho chứa toàn bộ công cụ và vật liệu (thư viện) dành riêng cho công trình đó. Điều này đảm bảo rằng công cụ của công trình này không bị lẫn lộn hay gây ảnh hưởng đến công trình khác. Đây là lý do cốt lõi tại sao chúng ta cần môi trường ảo: để cô lập các gói phụ thuộc.

Trong hệ sinh thái Python, có hai công cụ chính để thực hiện việc này: venvvirtualenv. venv là một mô-đun được tích hợp sẵn vào thư viện chuẩn của Python kể từ phiên bản 3.3. Vì là một phần của Python, nó không cần cài đặt thêm và rất dễ sử dụng. virtualenv là một gói của bên thứ ba, ra đời trước venv và có một số tính năng mở rộng hơn, đồng thời hỗ trợ cả các phiên bản Python cũ hơn. Về cơ bản, cả hai đều thực hiện cùng một mục tiêu là tạo ra các môi trường cô lập. Đối với hầu hết các dự án sử dụng Python 3.3 trở lên, venv là lựa chọn đủ tốt và tiện lợi nhất.

Hình minh họa

Hướng dẫn tạo và kích hoạt môi trường ảo Python trên CentOS 7

Việc tạo và quản lý một môi trường ảo rất đơn giản. Hãy bắt đầu với venv, công cụ tích hợp sẵn. Đầu tiên, di chuyển đến thư mục dự án của bạn. Sau đó, chạy lệnh python3 -m venv my_project_env. Lệnh này sẽ tạo một thư mục mới có tên my_project_env chứa bản sao của Python 3 và cấu trúc thư mục cần thiết. Tên my_project_env có thể được thay đổi tùy ý.

Sau khi tạo xong, bạn cần “kích hoạt” môi trường đó để bắt đầu sử dụng. Chạy lệnh: source my_project_env/bin/activate. Bạn sẽ thấy tên môi trường ảo xuất hiện ở đầu dòng lệnh, ví dụ (my_project_env) [user@host project]$, báo hiệu rằng bạn đang làm việc bên trong môi trường cô lập. Kể từ bây giờ, mọi thư viện bạn cài đặt bằng pip (ví dụ: pip install requests) sẽ chỉ được cài vào thư mục my_project_env này và không ảnh hưởng đến hệ thống chung. Để thoát khỏi môi trường ảo, bạn chỉ cần gõ lệnh deactivate. Quản lý môi trường ảo hiệu quả là chìa khóa để duy trì các dự án gọn gàng và không xung đột.

Kiểm tra và xác nhận môi trường lập trình hoạt động

Sau các bước cài đặt và cấu hình, việc kiểm tra lại toàn bộ hệ thống là bước cuối cùng để đảm bảo mọi thứ đã sẵn sàng cho công việc lập trình. Quá trình xác nhận này giúp bạn tự tin rằng Python 3 đã được cài đặt chính xác, môi trường ảo đang hoạt động đúng cách và các thư viện có thể được cài đặt và sử dụng một cách độc lập. Chúng ta sẽ thực hiện hai bài kiểm tra đơn giản nhưng hiệu quả: một là xác minh phiên bản của Python và pip bên trong môi trường ảo, hai là chạy một đoạn mã kịch bản nhỏ để chắc chắn rằng trình thông dịch hoạt động như mong đợi. Hoàn thành bước này đồng nghĩa với việc bạn đã có một nền tảng phát triển vững chắc và sẵn sàng để bắt đầu viết mã.

Hình minh họa

Kiểm tra phiên bản Python và pip

Đây là bước kiểm tra cơ bản nhất nhưng lại cực kỳ quan trọng. Trước tiên, hãy đảm bảo rằng bạn đã kích hoạt môi trường ảo của mình (bạn sẽ thấy tên môi trường ở đầu dòng lệnh). Sau khi đã ở bên trong môi trường ảo, hãy chạy lệnh python --version. Kết quả trả về phải là phiên bản Python 3 mà bạn đã cài đặt, ví dụ như Python 3.8.12, chứ không phải là phiên bản Python 2.7 mặc định của hệ thống.

Tương tự, hãy kiểm tra phiên bản của pip, trình quản lý gói của Python, bằng lệnh pip --version. Kết quả sẽ cho bạn biết đường dẫn của pip, và quan trọng là đường dẫn này phải trỏ vào bên trong thư mục môi trường ảo của bạn (ví dụ: .../my_project_env/lib/python3.8/site-packages/pip). Việc xác nhận cả hai phiên bản này cho thấy rằng môi trường ảo đã cô lập thành công và bạn đang sử dụng đúng các công cụ cho dự án của mình.

Chạy thử một script Python đơn giản để kiểm tra

Để hoàn tất quá trình xác nhận, không gì tốt hơn là chạy thử một đoạn mã thực tế. Bài kiểm tra này không chỉ xác minh trình thông dịch Python mà còn đảm bảo rằng việc cài đặt và nhập các thư viện bên ngoài hoạt động bình thường. Đầu tiên, bên trong môi trường ảo đã kích hoạt, hãy cài một thư viện phổ biến nào đó, ví dụ như requests: pip install requests.

Tiếp theo, tạo một tệp Python mới có tên test_app.py bằng lệnh nano test_app.py. Bên trong tệp, hãy viết một đoạn mã đơn giản như sau:

import sys
import requests

print(f"Phiên bản Python đang chạy: {sys.version}")
print("Kiểm tra thư viện 'requests'...")

try:
    response = requests.get('https://api.github.com')
    if response.status_code == 200:
        print("Thư viện 'requests' hoạt động thành công!")
except Exception as e:
    print(f"Có lỗi xảy ra: {e}")

Lưu tệp lại và chạy nó bằng lệnh python test_app.py. Nếu môi trường của bạn được thiết lập đúng, bạn sẽ thấy kết quả in ra phiên bản Python 3 và một thông báo xác nhận thư viện requests hoạt động thành công. Điều này chứng tỏ môi trường phát triển của bạn đã hoàn toàn sẵn sàng.

Hình minh họa

Các lỗi thường gặp và cách xử lý

Mặc dù quá trình cài đặt và cấu hình Python trên CentOS 7 đã được chuẩn hóa, đôi khi bạn vẫn có thể gặp phải một số sự cố không mong muốn. Những lỗi này thường xuất phát từ các vấn đề về biến môi trường, quyền truy cập hoặc thiếu các gói phụ thuộc. Tuy nhiên, đừng quá lo lắng, vì hầu hết các lỗi phổ biến đều có nguyên nhân rõ ràng và cách khắc phục tương đối đơn giản. Trong phần này, AZWEB sẽ chỉ ra hai trong số những vấn đề thường gặp nhất: lỗi không tìm thấy tệp thực thi Python 3 sau khi cài đặt, và các sự cố liên quan đến việc tạo hoặc kích hoạt môi trường ảo. Hiểu rõ nguyên nhân và cách xử lý sẽ giúp bạn tiết kiệm thời gian và nhanh chóng vượt qua các trở ngại này.

Lỗi không tìm thấy Python 3 sau cài đặt

Một trong những lỗi gây khó chịu nhất là khi bạn đã hoàn tất quá trình cài đặt nhưng khi gõ python3 vào terminal, hệ thống lại báo lỗi command not found. Nguyên nhân chính của vấn đề này thường liên quan đến biến môi trường PATH. Biến PATH là một danh sách các thư mục mà hệ điều hành sẽ tìm kiếm khi bạn thực thi một lệnh. Nếu thư mục chứa tệp thực thi Python 3 không nằm trong danh sách này, hệ thống sẽ không thể tìm thấy nó.

Để khắc phục, trước tiên hãy xác định vị trí của Python 3. Nếu bạn cài đặt từ mã nguồn bằng altinstall, nó thường nằm ở /usr/local/bin. Nếu bạn dùng SCL, bạn cần kích hoạt môi trường bằng scl enable rh-python38 bash để PATH được cập nhật tạm thời. Để thay đổi vĩnh viễn, bạn có thể thêm dòng export PATH="/usr/local/bin:$PATH" vào cuối tệp ~/.bashrc hoặc ~/.bash_profile, sau đó chạy source ~/.bashrc để áp dụng thay đổi. Điều này sẽ chỉ cho hệ thống biết nơi để tìm kiếm python3 mỗi khi bạn mở một terminal mới.

Vấn đề khi tạo hoặc kích hoạt môi trường ảo

Sự cố phổ biến thứ hai liên quan đến venv hoặc virtualenv. Đôi khi, bạn có thể nhận được thông báo lỗi như command not found: venv khi cố gắng tạo một môi trường ảo. Đối với venv, lỗi này thường xảy ra nếu gói python3-devel chưa được cài đặt, vì nó chứa một số thành phần cần thiết. Hãy thử chạy sudo yum install python3-devel -y để giải quyết.

Một vấn đề khác là lỗi về quyền truy cập (permission denied) khi tạo hoặc kích hoạt môi trường. Điều này thường xảy ra nếu bạn đang cố gắng tạo môi trường ảo trong một thư mục mà người dùng hiện tại không có quyền ghi. Hãy đảm bảo bạn đang làm việc trong thư mục nhà của mình (/home/your_user) hoặc một thư mục khác mà bạn có toàn quyền sở hữu. Một quy tắc quan trọng cần nhớ: không bao giờ sử dụng sudo để tạo hoặc kích hoạt môi trường ảo, vì điều này có thể gây ra các vấn đề về quyền sở hữu tệp rất khó gỡ rối sau này.

Hình minh họa

Mẹo tối ưu môi trường phát triển Python trên CentOS 7

Việc thiết lập thành công một môi trường Python 3 hoạt động trên CentOS 7 chỉ là bước khởi đầu. Để thực sự làm việc hiệu quả và chuyên nghiệp, bạn cần áp dụng các phương pháp và công cụ giúp tối ưu hóa quy trình phát triển. Những mẹo nhỏ này không chỉ giúp bạn quản lý dự án một cách khoa học hơn mà còn tăng cường khả năng cộng tác, bảo mật và hiệu suất. Từ việc quản lý các gói phụ thuộc một cách nhất quán, tự động hóa các tác vụ lặp đi lặp lại cho đến việc sử dụng các công cụ quản lý phiên bản tiên tiến, việc áp dụng các thói quen tốt sẽ nâng cao đáng kể chất lượng công việc của bạn. Hãy cùng AZWEB khám phá những kỹ thuật giúp bạn làm chủ môi trường phát triển Python của mình.

Một trong những thực hành tốt nhất và cơ bản nhất trong phát triển Python là quản lý các thư viện của dự án thông qua tệp requirements.txt. Tệp này hoạt động như một “bảng kê khai” chính xác tất cả các gói bên ngoài mà dự án của bạn cần để chạy. Sau khi cài đặt các thư viện cần thiết trong môi trường ảo, bạn có thể tự động tạo tệp này bằng cách chạy lệnh pip freeze > requirements.txt. Lệnh này sẽ ghi lại tên và phiên bản chính xác của tất cả các gói đã cài. Khi một đồng nghiệp hoặc chính bạn muốn thiết lập lại dự án trên một máy khác, họ chỉ cần tạo một môi trường ảo mới và chạy pip install -r requirements.txt. Toàn bộ các gói phụ thuộc sẽ được cài đặt tự động, đảm bảo tính nhất quán và khả năng tái tạo môi trường một cách hoàn hảo.

Hình minh họa

Để quy trình làm việc trở nên mượt mà hơn, bạn có thể thiết lập để môi trường ảo được tự động kích hoạt mỗi khi bạn di chuyển vào thư mục dự án. Việc phải gõ source my_env/bin/activate mỗi lần có thể trở nên nhàm chán. Các công cụ như shell script có thể giúp tự động hóa việc này. Hoặc một giải pháp đơn giản hơn là thêm một bí danh (alias) vào tệp ~/.bashrc của bạn. Dù chọn cách nào, việc tự động hóa này giúp bạn tiết kiệm thời gian và đảm bảo bạn luôn làm việc trong đúng môi trường cần thiết.

Bảo mật và hiệu suất là hai yếu tố không thể bỏ qua. Thế giới phần mềm luôn vận động, các phiên bản mới của Python và các thư viện liên tục được phát hành để vá lỗi, cải thiện hiệu năng và thêm tính năng mới. Hãy tạo thói quen thường xuyên cập nhật các công cụ của mình. Bắt đầu bằng việc nâng cấp pip với pip install --upgrade pip, sau đó xem xét việc cập nhật các gói trong requirements.txt của bạn. Cuối cùng, khi làm việc trên nhiều dự án đòi hỏi các phiên bản Python khác nhau (ví dụ: một dự án cũ chạy trên Python 3.7, một dự án mới yêu cầu 3.10), hãy cân nhắc sử dụng một công cụ quản lý phiên bản Python như pyenv. pyenv cho phép bạn cài đặt và chuyển đổi giữa nhiều phiên bản Python khác nhau trên cùng một hệ thống một cách dễ dàng, mang lại sự linh hoạt tối đa cho nhà phát triển.

Kết luận

Qua bài viết này, chúng ta đã cùng nhau đi qua một hành trình chi tiết để chinh phục việc cài đặt và thiết lập một môi trường phát triển Python 3 chuyên nghiệp trên hệ điều hành máy chủ CentOS 7. Từ việc chuẩn bị hệ thống, lựa chọn phương pháp cài đặt phù hợp giữa SCL và mã nguồn, cho đến việc làm chủ sức mạnh của môi trường ảo để quản lý các dự án một cách độc lập và sạch sẽ. Chúng ta cũng đã trang bị cho mình kiến thức để xử lý các lỗi thường gặp và các mẹo tối ưu hóa quy trình làm việc. Việc nắm vững các bước này không chỉ giải quyết được vấn đề phiên bản Python cũ trên CentOS 7 mà còn đặt một nền móng vững chắc cho sự phát triển của các ứng dụng sau này.

AZWEB khuyến khích bạn hãy bắt tay vào thực hành ngay những kiến thức đã học. Hãy bắt đầu một dự án mới, tạo môi trường ảo, quản lý thư viện bằng requirements.txt và trải nghiệm sự khác biệt mà một môi trường làm việc được tổ chức tốt mang lại. Thế giới Python rộng lớn và đầy tiềm năng. Đừng ngần ngại tìm hiểu sâu hơn, khám phá các thư viện mạnh mẽ và tham gia vào các cộng đồng lập trình viên để trao đổi kiến thức. Các tài liệu chính thức của Python, các diễn đàn về CentOS và các nền tảng như Stack Overflow luôn là những nguồn tài nguyên vô giá trên con đường trở thành một nhà phát triển Python chuyên nghiệp. Chúc bạn thành công!

Đánh giá