![](/img/trans.png)
[英]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.