スキップしてコンテンツを表示

AL2 または AL2023 において、Boto 3 ライブラリを使用する Python 3 仮想環境を作成する方法を教えてください。

所要時間3分
0

Amazon Linux 2 (AL2) または Amazon Linux 2023 (AL2023) 上で実行される Amazon Elastic Compute Cloud (Amazon EC2) インスタンスを使用しています。このインスタンスにおいて、AWS SDK for Python (Boto3) を使用する分離された Python 3 仮想環境を作成したいです。

解決策

Python 3 をインストールする

次の手順を実行します。

  1. SSH を使用して EC2 Linux インスタンスに接続します

  2. パッケージインデックスを更新するには、次のコマンドを実行します。

    yum check-update

    注: 上記のコマンドでは、利用可能な更新プログラムも検索します。Python 3 環境を作成するために、他のパッケージを更新する必要はありません。

  3. ホストに Python 3 がインストール済みかどうかを確認するには、次のコマンドを実行します。

    [ec2-user ~]$ yum list installed | grep -i python3

    Python 3 がインストールされていない場合は、次の出力が表示されます。

    [ec2-user ~]$ yum list installed | grep -i python3
    [ec2-user ~]$ python3
    -bash: python3: command not found

    Python 3 がインストールされている場合は、ディストリビューションに応じて、次の出力が表示されます。
    AL2:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                        3.7.4-1.amzn2.0.4              @amzn2-core
    python3-libs.x86_64                   3.7.4-1.amzn2.0.4              @amzn2-core
    python3-pip.noarch                    9.0.3-1.amzn2.0.1              @amzn2-core
    python3-setuptools.noarch             38.4.0-3.amzn2.0.6             @amzn2-core
    
    [ec2-user ~]$ whereis python3
    python3: //usr/bin/python3 /usr/bin/python3.7 /usr/bin/python3.7m /usr/lib/python3.7 /usr/lib64/python3.7 /usr/include/python3.7m /usr/share/man/man1/python3.1.gz

    AL2023:

    [ec2-user ~]$ yum list installed | grep -i python3
    python3.x86_64                         3.9.21-1.amzn2023.0.3              @System
    python3-pip-wheel.noarch               21.3.1-2.amzn2023.0.11             @System
    python3-libs.x86_64                    3.9.21-1.amzn2023.0.3              @System
    python3-setuptools.noarch              59.6.0-2.amzn2023.0.5              @System
    
    [ec2-user ~]$ whereis python3
    python3: /usr/bin/python3 /usr/share/man/man1/python3.1.gz
    
  4. Python 3 がインストールされていない場合は、次のコマンドを実行し、yum パッケージマネージャーでパッケージをインストールしてください。

    [ec2-user ~]$ sudo yum install python3 -y

ec2-user のホームディレクトリ内に仮想環境を作成する

仮想環境を含むアプリディレクトリを作成するには、次のコマンドを実行します。

[ec2-user ~]$ python3 -m venv my_app/env

注: my_app をアプリケーションディレクトリ名に置き換えてください。

仮想環境を有効化し、Boto3 ライブラリをインストールする

次の手順を実行します。

  1. AWS Identity and Access Management (IAM) ロールをインスタンスにアタッチします。このロールには、構成で必要なアクションの実行を SDK for Python (Boto3) に許可する権限ポリシーが必要です。その他の認証方法については、Boto3 のウェブサイトで「設定」を参照してください。

  2. 環境を有効にするには、次のコマンドを実行します。

    [ec2-user ~]$ source ~/my_app/env/bin/activate
    (env) [ec2-user ~]$

    注: my_app をアプリケーションディレクトリ名に置き換えてください。

  3. 環境にインストールされた pip モジュールを最新に保つには、次のコマンドを実行します。

    (env) [ec2-user ~]$ pip install pip --upgrade
  4. Boto3 ライブラリを仮想環境内にインストールするには、次のコマンドを実行します。

    (env) [ec2-user ~]$ pip install boto3
  5. Python を実行するには、次のコマンドを実行します。

    (env) [ec2-user ~]$ python
    Python 3.7.4 (default, Dec 13 2019, 01:02:18)[GCC 7.3.1 20180712 (Red Hat 7.3.1-6)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>>
  6. Boto3 ライブラリをインポートし、動作することを確認するには、次のコマンドを実行します。

    >>> import boto3                          # no error    

    次の出力例では、AWS アカウント内のすべての Amazon Simple Storage Service (Amazon S3) バケットが一覧表示されます。

    >>> import boto3                          # no error
    >>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    ...     print(bucket.name)
    ...                                       # Press Enter twice to execute the loop
    >>> exit()                                # Then type exit() to quit Python shell
  7. 仮想環境から退出するには、以下のコマンドを実行します。

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. ログイン時に仮想環境を自動的に有効化するには、次のコマンドを実行して ~/.bashrc ファイルを更新してください。

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc

    注: my_app をアプリケーションディレクトリ名に置き換えてください。上記のコマンドは、仮想環境を自動的にアクティブ化します。

  9. 環境の bash 環境をリロードするには、次のコマンドを実行します。

    [ec2-user ~]$ source ~/.bashrc

    出力例:

    (env) [ec2-user ~]$

    注: (env) は、仮想環境が正常に有効化されたことを示します。今後すべての SSH セッションを起動した際および、source ~/bashrc コマンドを実行した際に、Python 環境をデフォルトで使用可能になります。

関連情報

AL2 インスタンスのインスタンスソフトウェアを更新する

コンソールでインスタンス起動ウィザードを使用して EC2 インスタンスを起動する

Virtualenv (Python Packaging Authority (PyPA) のウェブサイト)

AWS公式更新しました 6ヶ月前
コメントはありません

関連するコンテンツ