Unexpected Exception: name 'basestring' is not defined when invoking ansible2
Solution 1:
Ansible below version 2.5 requires Python 2.6 or 2.7 on the control host: Control Node Requirements
basestring
is no longer available in Python 3. From What’s New In Python 3.0:
The builtin
basestring
abstract type was removed. Usestr
instead. Thestr
andbytes
types don’t have functionality enough in common to warrant a shared base class. The2to3
tool (see below) replaces every occurrence ofbasestring
withstr
.
So the solution is to either upgrade Ansible or downgrade Python.
Solution 2:
basestring is not available in Python 3.:
This can be fixed for python 2.x and 3.x with the following:
try:
basestring
except NameError:
basestring = str