【发布时间】:2016-10-18 04:43:58
【问题描述】:
我正在尝试编写 python 脚本来获取实例的标签键 AutoScalingGroupName 实例的值。我已经使用pip3 安装了boto3。
从 python3.4 shell 我能够成功import boto3。
#python3.4
Python 3.4.3 (default, Jul 8 2016, 11:37:17)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto3
>>> exit()
但脚本因此错误而失败。
#python test.py
Traceback (most recent call last):
File "test.py", line 3, in <module>
import boto3
ImportError: No module named boto3
#
这是test.py的内容
# cat test.py
#!/bin/python3.4
import requests
import boto3
import botocore.session
import urllib.request
instid = urllib.request.urlopen('http://169.254.169.254/latest/meta-data/instance-id').read().decode()
autossession = botocore.session.Session(profile='auto1')
ec2 = boto3.resource('ec2', region_name='us-west-2')
autosval = ec2.describe_instances(InstanceIds={instid}, Filters={"tag:AutoScalingGroupName"})
print(autosval)
#
【问题讨论】:
-
这里有一篇文章展示了如何使用 virtualenv 在 Python 3.4 中安装 boto3:How do I create an isolated Python 3.4 environment with Boto 3 on Amazon EC2 using virtualenv? 这可能会帮助您调试您的情况。
-
@JohnRotenstein,boto3 已经安装。看第一段代码,python3.4 shell中
Import boto3没有错误。 -
@JohnRotenstein,我刚刚注意到我以
python2.7而不是python3.4运行脚本。我没有看到ImportError: No module named boto3 -
遵循@JohnRotenstein 的建议,使用 virtualenv。这是 Python 开发的第一大最佳实践。在通用环境中安装 pypi 需要
sudo访问权限,这意味着没有sudo python就无法加载boto3。 Virtualenv 将创建独立的本地化用户环境,让您无需sudo即可安装python包 -
谢谢@mootmoot,肯定会开始使用Virtualenv。
标签: python-3.x amazon-ec2 boto3