Amazon Linux 2 で Boto 3 ライブラリを使用して Python 3 仮想環境を作成する方法を教えてください。

所要時間2分
0

Amazon Linux 2 上で実行される Amazon Elastic Compute Cloud (Amazon EC2) インスタンスがあります。インスタンスに Boto 3 ライブラリを使用して、隔離された Python 3 仮想環境を作成したいと考えています。

解決策

Amazon Linux 2 用の Python 3 のインストール

  1. SSH を使用して EC2 Linux インスタンスに接続します。詳細については、「SSH を使用して Linux または macOS から Linux インスタンスに接続する」をご参照ください。

  2. yum check-update を実行してパッケージインデックスを更新します。check-update では、利用可能なアップデートも検索されます。Python 3 環境の作成に他のパッケージを更新する必要はありません。

  3. ホストに既に Python 3 がインストールされているかどうかを確認するには、list installed:> を実行してください。

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

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

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

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

    [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
  4. Python 3 がインストールされていない場合は、yum パッケージマネージャーを使用してパッケージをインストールします。

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

ec2-user ホームディレクトリの下に仮想環境を作成します。

次のコマンドは、仮想環境を含むアプリディレクトリを作成します。my_app は、別の名前に変更することができます。my_app を変更した場合は、残りの解決策で新しい名前を参照してください。

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

仮想環境を有効にし、Boto 3 をインストールします。

  1. Boto 3 が AWS API とやり取りできるようにするアクセス権限ポリシーから、AWS アイデンティティおよびアクセス管理 (IAM) ロールを EC2 インスタンスにアタッチします。その他の認証方法については、Boto 3 のドキュメントをご参照ください。

  2. 環境を有効にするには、プロジェクトディレクトリの下の bin ディレクトリに activate ファイルをソースします。

    [ec2-user ~]$ source ~/my_app/env/bin/activate(env) [ec2-user ~]$
  3. ご使用の環境に最新の pip モジュールがインストールされているかを確認します。

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

    (env) [ec2-user ~]$ pip install boto3
  5. Python を実行します。

    (env) [ec2-user ~]$ pythonPython 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. Boto 3 ライブラリをインポートし、動作するかを確認します。このステップでは、ステップ 1 のアクセス権限ポリシーを設定します。次の出力例では、アカウント内のすべての Amazon Simple Storage Service (Amazon S3) バケットが一覧表示されます。

    >>> import boto3           # no error>>> s3 = boto3.resource('s3')
    >>> for bucket in s3.buckets.all():
    print(bucket.name)
    >>> exit()
  7. 仮想環境を終了するには、deactivate コマンドを実行します。

    (env) [ec2-user ~]$ deactivate
    [ec2-user ~]$
  8. ログイン時に仮想環境を自動的にアクティブ化するには、~/.bashrc ファイルに追加します。

    [ec2-user ~]$ echo "source ${HOME}/my_app/env/bin/activate" >> ${HOME}/.bashrc
  9. ホームディレクトリの ~/.bashrc ファイルをソースにして、環境の bash 環境をリロードします。これにより、仮想環境が自動的にアクティブになります。プロンプトには変更 (env) が反映されます。この変更は、今後の SSH セッションにも適用されます。

    [ec2-user ~]$ source ~/.bashrc
    (env) [ec2-user ~]$

関連情報

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

インスタンス起動ウィザードを使用してインスタンスを起動する

Python パッケージング・オーソリティ (PYPA) のウェブサイトにある Virtualenv

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

関連するコンテンツ