[英]Using a later version of six than 1.4.1 when running a python script
[英]Version of Python when running Ansible commands
我正在使用OSX.10.12.6
。
我通过pip3安装了ansible(为了将其与Python3一起使用,因为默认情况下我的计算机上已经安装了Python2),并从Ansible github下载了ec2.py外部清单脚本
但是在运行ansible命令时,出现错误:
[WARNING]: * Failed to parse
~/ec2.py with script plugin: Inventory script
~/ec2.py) had an execution error: Traceback (most recent call last): File
"~/ec2.py", line 130, in <module> import boto ImportError: No module named boto
似乎是因为ansible使用的是Python2而不是Python3(我检查过,我无法从Python2导入boto或ansible,但可以从Python3导入)。 我也可以成功运行以下python3 ec2.py
令人惊讶的是,如果我运行ansible --version
,则会得到以下信息:
ansible 2.8.3
config file = ~/ansible.cfg
configured module search path = ['/Users/XXXX/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/local/lib/python3.6/site-packages/ansible
executable location = /usr/local/bin/ansible
python version = 3.6.5 (default, Mar 30 2018, 06:42:10) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]
我能做些什么来“强迫”使用Python3而不是Python2吗?
PS:请注意,我可以通过在Python2上进行pip install boto来解决最初的错误,但是会弹出其他错误,而宁愿使用Python3
FreeBSD Quarterly(Stable)Ports Branch今天发布了2019Q3的 Ansible 2.7.10 。 HEAD在上周日升级到Ansible 2.8.3 ! 结论是,FreeBSD决定不将2.8.3放入STABLE分支。 可能的原因之一是Ansible 2.8 Python解释器发现中的新功能。 请参阅使用FLAVORS 。 因此,您可以降级到Ansible 2.7,或者继续修复HEAD(在MacOS中)。
可能值得尝试将ansible_python_interpreter设置为Python 2.7。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.