boto3导入失败python3.4

时间:2016-10-16 18:02:49

标签: python-3.x amazon-ec2 boto3

我正在尝试使用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)
#

1 个答案:

答案 0 :(得分:3)

您的问题似乎是由命令行与脚本中运行不同版本的Python 引起的。

当系统上安装了多个版本的Python(及其库)时,这是很常见的。

我也是通过sudo命令(例如pip)安装python库和实用程序时遇到的问题,但是在用户之间有不同的路径,因此会运行不同的版本。

幸运的是,Python社区已经创建了Virtualenv,它允许安装多个版本的Python,每个版本都在自己的环境中。这也允许安装库而无需sudo访问。

如果您仍然遇到版本不匹配,请尝试使用virtualenv!