如何在 Amazon Linux 2 上使用 Boto 3 程式庫建立 Python 3 虛擬環境?

2 分的閱讀內容
0

我具有在 Amazon Linux 2 上執行的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體。我想在執行個體上使用 Boto 3 程式庫建立隔離的 Python 3 虛擬環境。

解決方法

安裝 Python 3 for Amazon Linux 2

  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 使用者主目錄下建立虛擬環境

下列命令會建立在其內部具有虛擬環境的應用程式目錄。您可以將 my_app 變更為其他名稱。如果您變更 my_app,請在剩餘的解決方法步驟中參照新名稱:

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

啟用虛擬環境並安裝 Boto 3

  1. 使用許可政策將 AWS Identity and Access Management (IAM) 角色連接至 EC2 執行個體,以便 Boto 3 與 AWS API 互動。如需其他身分驗證方法,請參閱 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 Packaging Authority (PYPA) 網站上的 Virtualenv

AWS 官方
AWS 官方已更新 8 個月前