跳至内容

如何在 AL2 或 AL2023 上创建一个包含 Boto 3 库的 Python 3 虚拟环境?

3 分钟阅读
0

我有一个在 Amazon Linux 2 (AL2) 或 Amazon Linux 2023 (AL2023) 上运行的 Amazon Elastic Compute Cloud (Amazon EC2) 实例。我想在我的实例上创建一个包含适用于 Python 的 AWS SDK (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) 角色附加到您的实例。该角色必须拥有允许适用于 Python 的 SDK (Boto3) 执行您的配置所需操作的权限策略。有关其他身份验证方法,请参阅 Boto3 网站上的 Configuration(配置)

  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 环境。

相关信息

Update instance software on your AL2 instance(更新 AL2 实例上的实例软件)

使用控制台中的启动实例向导来启动 EC2 实例

Python Packaging Authority (PyPA) 网站上的 Virtualenv

AWS 官方已更新 7 个月前