boto3 导入失败 python3.4

boto3 import fails python3.4

我正在尝试编写 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)
#

看来您的问题是由命令行和脚本中 运行 不同版本的 Python 引起的。

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

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

幸运的是,Python 社区创建了 Virtualenv,它允许安装 Python 的多个版本,每个版本都在自己的环境中.这也允许在不需要 sudo 访问权限的情况下安装库。

如果您仍然遇到版本不匹配的问题,请试试 virtualenv!