意外异常:调用 ansible2 时未定义名称“basestring" [英] Unexpected Exception: name 'basestring' is not defined when invoking ansible2

查看:22
本文介绍了意外异常:调用 ansible2 时未定义名称“basestring"的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行 ansible2 commnads...

I'm trying to execute ansible2 commnads...

当我这样做时:

ansible-playbook -vvv -i my/inventory my/playbook.yml

我明白了:

意外异常:名称basestring"未定义完整的回溯是:

Unexpected Exception: name 'basestring' is not defined the full traceback was:

Traceback (most recent call last):
  File "/usr/local/bin/ansible-playbook", line 85, in <module>
    sys.exit(cli.run())
  File "/usr/local/lib/python3.4/site-packages/ansible/cli/playbook.py", line 150, in run
    results = pbex.run()
  File "/usr/local/lib/python3.4/site-packages/ansible/executor/playbook_executor.py", line 87, in run
    self._tqm.load_callbacks()
  File "/usr/local/lib/python3.4/site-packages/ansible/executor/task_queue_manager.py", line 149, in load_callbacks
    elif isinstance(self._stdout_callback, basestring):
NameError: name 'basestring' is not defined

这是ansible --version:

ansible 2.0.0.2
  config file = /etc/ansible/ansible.cfg
  configured module search path = Default w/o overrides

这里是 python --version

Python 3.4.3

推荐答案

Ansible 2.5 以下版本需要控制主机上的 Python 2.6 或 2.7:控制节点要求

Ansible below version 2.5 requires Python 2.6 or 2.7 on the control host: Control Node Requirements

basestring 在 Python 3 中不再可用.来自 Python 3.0 中的新功能:

basestring is no longer available in Python 3. From What’s New In Python 3.0:

内置的 basestring 抽象类型被移除.使用 str 代替.strbytes 类型没有足够的共同功能来保证共享基类.2to3 工具(见下文)用 str 替换每次出现的 basestring.

The builtin basestring abstract type was removed. Use str instead. The str and bytes types don’t have functionality enough in common to warrant a shared base class. The 2to3 tool (see below) replaces every occurrence of basestring with str.

所以解决方案是升级 Ansible 或降级 Python.

So the solution is to either upgrade Ansible or downgrade Python.

这篇关于意外异常:调用 ansible2 时未定义名称“basestring"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆