我正在尝试使用python脚本来获取实例的实例的Tag key AutoScalingGroupName
值。我已使用boto3
安装了pip3
。
从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)
#
答案 0 :(得分:3)
您的问题似乎是由命令行与脚本中运行不同版本的Python 引起的。
当系统上安装了多个版本的Python(及其库)时,这是很常见的。
我也是通过sudo
命令(例如pip
)安装python库和实用程序时遇到的问题,但是在用户之间有不同的路径,因此会运行不同的版本。
幸运的是,Python社区已经创建了Virtualenv,它允许安装多个版本的Python,每个版本都在自己的环境中。这也允许安装库而无需sudo
访问。
如果您仍然遇到版本不匹配,请尝试使用virtualenv!