跳至內容

如何在 AL2 或 AL2023 上使用 Boto3 函式庫建立 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 執行個體

Python Packaging Authority (PyPA) 網站上的 Virtualenv

AWS 官方已更新 9 個月前