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