动态广告资源:ec2.py
ansible 2.1.0.0
Python 2.7.10
Mac OS X 10.11.6
独立运行ec2.py会导致导入错误。
python ec2.py --list
Traceback (most recent call last):
File "ec2.py", line 134, in <module>
from ansible.module_utils import ec2 as ec2_utils
ImportError: No module named ansible.module_utils
实例列表
上面的错误。
如果我在from ansible.module_utils import ec2 as ec2_utils
行中注释掉,脚本可以正常运行。
该行是在#16606中引入的。
@jonatanblue导入是由https://github.com/ansible/ansible/commit/59e499f8f00e4068b68c147b8f3002535ad706e0添加的,这似乎是试图规范boto客户端安装程序代码的尝试。
含义是,为了使用清单脚本,您需要在计算机上安装ansible,以便在默认Python解释器的python路径中可以使用“ ansible”。 随着时间的流逝,我们计划在动态清单脚本中更多地使用ansible库,因此我将不会还原此更改。
很高兴听到这不是错误。 这在文档中的某处有描述吗?
我弄清楚是什么原因导致的:用brew
安装Ansible使ansible对我的Python解释器不可用。
为了解决这个问题,我卸载了Ansible并使用pip再次安装了它:
brew uninstall ansible
pip install ansible
现在可以使用ansible了:
python -c "import ansible;print(ansible.__version__)"
2.1.1.0
并且脚本按预期工作。
可能值得在文档中的某处提及,或者如果ansible
在python路径中不可用,则脚本会引发提示性错误。
最有用的评论
很高兴听到这不是错误。 这在文档中的某处有描述吗?
我弄清楚是什么原因导致的:用
brew
安装Ansible使ansible对我的Python解释器不可用。为了解决这个问题,我卸载了Ansible并使用pip再次安装了它:
现在可以使用ansible了:
并且脚本按预期工作。
可能值得在文档中的某处提及,或者如果
ansible
在python路径中不可用,则脚本会引发提示性错误。