본문 바로가기

Architecture/AWS

[AWS] EC2(Amazon Linux 2023)에 Python 설치하기

728x90
반응형

목차

     

    개요 

    Python Project 배포용으로 AWS EC2의 Amzon Linux 2023을 선택한 경우 사전에 필요한 명령어들이다

     

    1.  Setting Command

    패키지 업데이트

    sudo yum update -y
    sudo yum groupinstall "Development Tools" -y
    sudo yum erase openssl-devel -y
    

    이후 Python을 설치하기 전 필요한 패키지들을 설치해주자.

    sudo yum install openssl-devel libffi-devel bzip2-devel wget -y

     

    2.  Python 설치하기

    이 내용은 파이썬을 컴파일하여 설치하는 방법이다.

     

    Python3.10 버전의 Source를 받아 Compile 을 통해 설치하는 경우 다음과 같다..

    wget https://www.python.org/ftp/python/3.10.10/Python-3.10.10.tgz
    tar -xf Python-3.10.4.tgz
    cd Python-3.10.4/
    
    ./configure --enable-optimizations
    sudo make altinstall

    이 단계까지 하면 Python3.10.10 버전이 EC2 내부에는 설치된 셈이다.  이후 /usr/bin/이나 /sbin에 python binary에 대한 링크를 생성하여 전역적으로 사용할 수 있지만 내 경우엔 "yum"이 먹통이 되는 증상이 있었다.

     

    그래서 다음과 같이 project가 위치한 경로에 venv를 생성해놓고 사용했다.

    cd /src
    /opt/Python-3.10/6/python -m venv venv

     

    2.1 SSL Error가 나는 경우

    위와 같이 설치를 진행한 뒤 pip를 통해 라이브러리를 다운받고 난 후 다음과 같이 SSL Error가 날 수도 있다.

    WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/annotated-types/
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/annotated-types/
    WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/annotated-types/
    WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/annotated-types/

     

    이럴 때는 다음과 같이 ssl 옵션을 통해 재설치를 해야한다.

    sudo ./configure --enable-optimizations --with-openssl=/usr/lib/ssl

     

    3.  기타

    3.1 MySQLClient Error

    Python에서 MySQL과의 연결에 사용되는 mysqlclient가 설치가 안되는 경우가 발생할 수 있다. 이 경우엔 다음 명령을 참고하자.

    sudo dnf install <https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpm>
    sudo dnf install mysql-community-server
    
    sudo dnf update
    yum install mysql-devel

     

     

    혹은 버전의 문제일 수 있으니 mysqlclient를 2.1.0으로 내려서 설치해보자.

    728x90
    반응형