【소 재료】Amazon Linux 2에 Python3을 설치하여 venv 환경을 구축한다 【venv】

【소 재료】Amazon Linux 2에 Python3을 설치하여 venv 환경을 구축한다 【venv】

2022-10-06 last update

7 minutes reading AmazonLinux2 venv

소개



Amazon Linux 2를 비롯한 대부분의 Linux 배포판은 패키지 관리자(예: yum, apt 등) 기능으로 Python을 설치할 수 있습니다.
그러나 이러한 패키지 관리자에 설치된 소프트웨어는 안정성이 중요하며 최신 업데이트를 따르지 않는 경우가 많습니다.

드물게 AWS CLI의 최신 버전이 필요할 수 있지만, 이것은 OS 배포판의 패키지 버전에서는 대체로 추종하지 않기 때문에 pip에서 설치하는 것이 대부분이라고 생각합니다.
OS 배포판 pip를 사용하여 Python 패키지를 설치/업데이트하면 다른 기존 응용 프로그램에 영향을 줄 수 있습니다.

그래서 OS 배포 환경에 영향을주지 않고 pip에 의한 Python 패키지의 설치를 자유롭게 할 수 있도록 venv를 이용하여 Python3 환경을 정비하는 순서를 정리합니다.

환경


  • 배포판:
  • Amazon Linux release 2 (Karoo)
  • cpe:2.3 amazon:amazon_linux:2

  • venv 환경 이름:
  • my_venv


  • 절차



    Python3 설치



    먼저 Amazon Linux 2의 패키지 관리자인 yum을 사용하여 Python3을 설치합니다.
    2019/12/16 현재 Python3 버전은 3.7.4와 같습니다.
    ### Python3インストール
    $ sudo yum install python3
    ※途中省略
    
    Dependencies Resolved
    
    ================================================================================================================================================================
     Package                                    Arch                           Version                                     Repository                          Size
    ================================================================================================================================================================
    Installing:
     python3                                    x86_64                         3.7.4-1.amzn2.0.3                           amzn2-core                          71 k
    Installing for dependencies:
     python3-libs                               x86_64                         3.7.4-1.amzn2.0.3                           amzn2-core                         9.0 M
     python3-pip                                noarch                         9.0.3-1.amzn2.0.1                           amzn2-core                         1.9 M
     python3-setuptools                         noarch                         38.4.0-3.amzn2.0.6                          amzn2-core                         617 k
    
    Transaction Summary
    ================================================================================================================================================================
    Install  1 Package (+3 Dependent packages)
    
    Total download size: 12 M
    Installed size: 50 M
    Is this ok [y/d/N]: y
    
    ※途中省略
    
    ### 意図したバージョンがインストールされていることを確認
    $ which python3
    /usr/bin/python3
    $ python3 --version
    Python 3.7.4
    

    my_venv라는 이름의 venv 환경 만들기



    venv는 전용 명령을 제공하지 않으며 파이썬 모듈로 제공됩니다. 따라서 파이썬의 "-m"옵션을 사용하여 venv를 실행합니다.
    ### my_venvという名称の環境を、ホームディレクトリ以下に作成
    $ cd
    $ python3 -m venv my_venv
    $ ls ~/my_venv/
    bin/        include/    lib/        lib64/      pyvenv.cfg
    

    또한 venv 환경으로 전환할 때 activate 명령을 사용합니다. 이것은 "~/my_venv/bin/activate*"와 같은 스크립트로 제공됩니다.
    $ ls -l ~/my_venv/bin/activate*
    -rw-r--r-- 1 vagrant vagrant 2203 Dec 15 15:30 /home/vagrant/my_venv/bin/activate
    -rw-r--r-- 1 vagrant vagrant 1259 Dec 15 15:30 /home/vagrant/my_venv/bin/activate.csh
    -rw-r--r-- 1 vagrant vagrant 2411 Dec 15 15:30 /home/vagrant/my_venv/bin/activate.fish
    

    venv 환경으로 전환



    이제 방금 만든 my_venv 환경으로 전환합니다.
    전환되었는지 확인하려면 which를 사용하면 편리합니다.
    $ . ~/my_venv/bin/activate
    (my_venv) $ python --version
    Python 3.7.4
    (my_venv) $ which python
    ~/my_venv/bin/python
    

    AWS CLI 설치



    venv 환경으로 전환한 상태에서 pip install을 사용하여 AWS CLI를 설치합니다.
    ### 実行しているpipコマンドがvenv環境のものになっていること
    (my_venv) $ which pip
    ~/my_venv/bin/pip
    
    ### AWS CLIのインストール・バージョンの確認
    (my_venv) $ pip install awscli
    Collecting awscli
    
    ※途中省略
    
    Installing collected packages: PyYAML, docutils, six, python-dateutil, jmespath, urllib3, botocore, s3transfer, pyasn1, rsa, colorama, awscli
      Running setup.py install for PyYAML ... done
    Successfully installed PyYAML-5.1.2 awscli-1.16.303 botocore-1.13.39 colorama-0.4.1 docutils-0.15.2 jmespath-0.9.4 pyasn1-0.4.8 python-dateutil-2.8.0 rsa-3.4.2 s3transfer-0.2.1 six-1.13.0 urllib3-1.25.7
    

    설치가 완료되면 AWS CLI 버전이 최신 버전인지 확인합니다.
    ### 念のためシェルを実行しなおす
    (my_venv) $ exec bash
    (my_venv) $
    
    ### AWS CLIコマンドのパスが、venv環境以下のものであることを確認する
    (my_venv) $ which aws
    ~/my_venv/bin/aws
    
    ### AWS CLIの最新版がインストールされていることを確認する
    (my_venv) $ aws --version
    aws-cli/1.16.303 Python/3.7.4 Linux/4.14.104-95.84.amzn2.x86_64 botocore/1.13.39