如何在 Amazon Linux 2 上使用 Boto 3 库创建 Python 3 虚拟环境?

上次更新时间:2020 年 2 月 7 日

如何在运行 Amazon Linux 2 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例或本地解决方案上使用 Boto 3 库创建隔离的 Python 3 虚拟环境?

简短描述

要为 Amazon Linux 2 创建隔离的 Python 环境,您需要执行下列操作:

1.    安装适用于 Amazon Linux 2 的 Python 3。

2.    在 ec2-user 主目录下安装虚拟环境。

3.    激活该环境,然后安装 Boto 3。

解决方法

安装适用于 Amazon Linux 2 的 Python 3

1.    使用 SSH 连接到 EC2 Linux 实例。有关更多信息,请参阅使用 SSH 连接到 Linux 实例

2.    执行 yum check-update 以刷新程序包索引。check-update 还会查找是否有可用的更新。创建 Python 3 环境应该不需要更新其他程序包。

3.    运行 list installed 以确定主机上是否已安装 Python 3。

[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.    使用适当的权限策略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.    使用 pip 命令在我们的虚拟环境中安装 Boto 3 库。

(env) [ec2-user ~]$ pip install boto3

5.    使用 python 可执行文件运行 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.    导入 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 ~]$

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助?