Hướng dẫn cài đặt Python 3.12 trên EC2 (Amazon Linux) với OpenSSL và Pip
Cài đặt Python 3 trên EC2 (Amazon Linux) với OpenSSL và Pip
Giới thiệu
Bài viết này hướng dẫn chi tiết cách cài đặt Python 3.12 trên Amazon Linux với OpenSSL và Pip.
Python là một ngôn ngữ lập trình phổ biến được sử dụng rộng rãi trong khoa học dữ liệu, phát triển web và nhiều ứng dụng khác.
Việc cài đặt Python kết hợp với OpenSSL để đảm bảo khi cài đặt các gói pip không gây ra lỗi SSL, giúp bạn tạo môi trường phát triển Python an toàn và hiệu quả trên Amazon Linux.
Các bước cài đặt
0. Xoá toàn bộ Python3.12 và các dependencies cũ
Bước này giúp bạn xoá toàn bộ Python3.12 và các dependencies cũ trên Amazon Linux trước khi cài đặt Python mới. Để xoá Python3.12 và các dependencies cũ, hãy sử dụng lệnh sau:
#Kiểm tra phiên bản Python 3.12 đang sử dụng
which python3.12
python3.12 --version
ls /usr/bin/python3.12
# Remove Python directories
sudo rm -rf /usr/lib/python3.12
sudo rm -rf /usr/local/lib/python3.12
sudo rm -rf /usr/include/python3.12
sudo rm -rf /usr/local/include/python3.12
sudo rm -rf /usr/share/python3.12
sudo rm -rf /usr/local/share/python3.12
#Clean package manager cache
sudo yum clean all
#Verify Python 3.12 is removed
which python3.12
python3.12 --version
1. Cập nhật hệ thống
Trước khi cài đặt Python 3, hãy cập nhật hệ thống Amazon Linux của bạn để đảm bảo bạn có các gói phần mềm mới nhất.
sudo yum update -y
2. Cài đặt Required Development Tools
Để biên dịch Python từ source code, bạn cần cài đặt các công cụ phát triển và thư viện cần thiết như sau:
sudo yum groupinstall "Development Tools" -y
sudo yum install gcc bzip2-devel libffi-devel -y
3. Cài đặt OpenSSL
OpenSSL là một thư viện mã hóa quan trọng, cung cấp các chức năng và giao thức mã hóa cần thiết cho các ứng dụng Python để thiết lập kết nối an toàn qua mạng. Nó đóng vai trò then chốt trong việc đảm bảo an ninh internet và quản lý máy chủ bằng cách cung cấp các chức năng mã hóa như tạo certificate, mã hóa dữ liệu, xác thực và nhiều chức năng khác.
Sau khi cài đặt các gói cần thiết, hãy sử dụng lệnh sau để cài đặt OpenSSL 1.1:
sudo yum install openssl11 openssl11-devel -y
Để đảm bảo OpenSSL 1.1 đã được cài đặt thành công, hãy kiểm tra phiên bản OpenSSL bằng lệnh sau:
openssl version
4. Cài đặt Python 3 từ Python.org
- Tải xuống mã nguồn Python:
cd /tmp
sudo wget https://www.python.org/ftp/python/3.12.8/Python-3.12.8.tgz
- Giải nén tệp Python:
sudo tar xzf Python-3.12.8.tgz
- Cấu hình trước khi biên dịch:
Trước tiên cần cấu hình Python để sử dụng OpenSSL 1.1 đã cài đặt. Để làm điều này, hãy sử dụng lệnh sau:
cd Python-3.12.8
# Xác định đường dẫn của OpenSSL 1.1
which openssl11
sudo ./configure --with-openssl={target_path}
# Ví dụ: sudo ./configure --with-openssl=/usr/bin/openssl11
sudo ./configure --enable-optimizations
- Biên dịch và cài đặt Python 3:
Biên dịch và cài đặt Python 3 từ source code Python (Đợi một lúc cũng kha khá thời gian)
sudo make
sudo make altinstall
Sử dụng make altinstall để tránh ghi đè lên tệp nhị phân python mặc định /usr/bin/python.
- Kiểm tra phiên bản Python 3:
python3.12 --version
5. (Optional) Thay đổi phiên bản Python mặc định:
sudo ln -s /usr/local/bin/python3.12 /usr/local/bin/python3
Điều này cho phép bạn sử dụng lệnh python3 để gọi phiên bản Python 3.12 vừa cài đặt. Nếu bạn không muốn sử dụng phiên bản Python 3.12 làm mặc định, hãy bỏ qua bước này.
6. Kiểm tra cài đặt OpenSSL với Python 3
Để đảm bảo OpenSSL được tích hợp đúng cách với Python 3, hãy chạy lệnh sau:
python3.12 -c "import ssl; print(ssl.OPENSSL_VERSION)"
Lệnh này sẽ hiển thị phiên bản OpenSSL mà Python 3 đang sử dụng.
7. (Optinal) Thiết lập môi trường ảo
Môi trường ảo giúp cô lập các gói Python cho các dự án khác nhau. Điều này cho phép bạn quản lý các gói cụ thể cho từng dự án, tránh xung đột giữa các dự án khác nhau và đảm bảo rằng mỗi dự án đều có môi trường Python riêng biệt. Để thiết lập môi trường ảo, trước tiên hãy cài đặt package virtualenv:
cd ~
python3.12 -m ensurepip --upgrade
pip3.12 install virtualenv
Sau đó, tạo một môi trường ảo mới:
python3.12 -m venv <tên_môi trường_ảo>
Để kích hoạt môi trường ảo, sử dụng lệnh:
source <tên_môi trường_ảo>/bin/activate
Bây giờ bạn có thể cài đặt các gói Python trong môi trường ảo này mà không ảnh hưởng đến môi trường Python global.
Phụ lục
Lệnh hữu ích
Lệnh | Mô tả | Ví dụ |
---|---|---|
sudo yum update-y | Cập nhật hệ thống | sudo yum update-y |
python3--version | Kiểm tra phiên bản Python 3 | python3--version |
sudo yum install openssl11 | Cài đặt OpenSSL 1.1 | sudo yum install openssl11 |
python3-c "import ssl; print(ssl.OPENSSL_VERSION)" | Kiểm tra phiên bản OpenSSL trong Python 3 | python3-c "import ssl; print(ssl.OPENSSL_VERSION)" |
sudo python3-m ensurepip --upgrade | Nâng cấp ensurepip | sudo python3-m ensurepip --upgrade |
sudo pip3 install virtualenv | Cài đặt virtualenv | sudo pip3 install virtualenv |
python3-m venv <tên_môi trường_ảo> | Tạo môi trường ảo | python3-m venv myenv |
source<tên_môi trường_ảo>/bin/activate | Kích hoạt môi trường ảo | source myenv/bin/activate |
Các vấn đề thường gặp và giải pháp
1. Lỗi OpenSSL
Nếu bạn gặp lỗi liên quan đến OpenSSL khi cài đặt Python 3 từ source code, hãy đảm bảo rằng bạn đã cài đặt các thư viện libbz2-dev, openssl, libssl-dev và liblzma-dev 14. Các thư viện này cung cấp các chức năng cần thiết cho OpenSSL để hoạt động chính xác với Python.
Bạn có thể kiểm tra phiên bản SSL mà Python đang sử dụng bằng lệnh
python \-c "import ssl; print(ssl.OPENSSL\_VERSION)"
Nếu phiên bản OpenSSL thấp hơn 1.1.1, bạn có thể cần cập nhật OpenSSL lên phiên bản mới hơn hoặc hạ cấp urllib3 xuống phiên bản cũ hơn hỗ trợ OpenSSL 1.0.2 bằng lệnh
pip install 'urllib3\<2.0'
Việc hạ cấp urllib3 có thể là giải pháp tạm thời nếu bạn không thể cập nhật OpenSSL ngay lập tức.
Ngoài ra, một vấn đề khác có thể xảy ra là biến môi trường LD_LIBRARY_PATH không được thiết lập chính xác. Biến này chỉ định đường dẫn đến các thư viện dùng chung mà hệ thống sẽ tìm kiếm khi chạy chương trình. Nếu LD_LIBRARY_PATH không bao gồm đường dẫn đến thư viện OpenSSL, Python có thể không tìm thấy OpenSSL và gây ra lỗi.
Tổng kết
Việc cài đặt Python 3 với OpenSSL và Pip trên Amazon Linux là bước quan trọng để thiết lập một môi trường phát triển Python an toàn và hiệu quả. OpenSSL đảm bảo an toàn cho các kết nối mạng và mã hóa dữ liệu, trong khi Pip giúp dễ dàng quản lý các thư viện Python. Bằng cách làm theo các bước được nêu trong bài viết này, bạn có thể cài đặt Python 3, OpenSSL và Pip, đồng thời thiết lập môi trường ảo để quản lý các dự án Python của mình một cách hiệu quả. Việc sử dụng môi trường ảo (venv) giúp cô lập các gói Python cho từng dự án, tránh xung đột và đảm bảo tính ổn định cho ứng dụng của bạn.
Tìm hiểu thêm những bài viết hay ho khác trên blog của mình ở đây: https://blogs.dinhtruong.dev/
All rights reserved