Figured I'd share the error I was getting. Firstly, you need to be using Python 3+ for the version of ansible.

sudo pip install ansible

Downloading/unpacking ansible Downloading ansible-2.4.1.0.tar.gz (6.7MB): 6.7MB downloaded Running setup.py (path:/tmp/pip-build-f2xlqxxd/ansible/setup.py) egg_info for package ansible no previously-included directories found matching 'ticket_stubs' no previously-included directories found matching 'hacking' Requirement already satisfied (use --upgrade to upgrade): jinja2 in /usr/local/lib/python3.4/dist-packages (from ansible) Requirement already satisfied (use --upgrade to upgrade): PyYAML in /usr/local/lib/python3.4/dist-packages (from ansible) Requirement already satisfied (use --upgrade to upgrade): paramiko in /usr/local/lib/python3.4/dist-packages (from ansible) Requirement already satisfied (use --upgrade to upgrade): cryptography in /usr/local/lib/python3.4/dist-packages (from ansible) Requirement already satisfied (use --upgrade to upgrade): setuptools in /usr/local/lib/python3.4/dist-packages (from ansible) Requirement already satisfied (use --upgrade to upgrade): idna>=2.1 in /usr/local/lib/python3.4/dist-packages (from cryptography->ansible) Requirement already satisfied (use --upgrade to upgrade): asn1crypto>=0.21.0 in /usr/local/lib/python3.4/dist-packages (from cryptography->ansible) Requirement already satisfied (use --upgrade to upgrade): six>=1.4.1 in /usr/local/lib/python3.4/dist-packages (from cryptography->ansible) Installing collected packages: ansible Running setup.py install for ansible changing mode of build/scripts-3.4/ansible from 644 to 755 changing mode of build/scripts-3.4/ansible-playbook from 644 to 755 changing mode of build/scripts-3.4/ansible-pull from 644 to 755 changing mode of build/scripts-3.4/ansible-doc from 644 to 755 changing mode of build/scripts-3.4/ansible-galaxy from 644 to 755 changing mode of build/scripts-3.4/ansible-console from 644 to 755 changing mode of build/scripts-3.4/ansible-connection from 644 to 755 changing mode of build/scripts-3.4/ansible-vault from 644 to 755 no previously-included directories found matching 'ticket_stubs' no previously-included directories found matching 'hacking' changing mode of /usr/local/bin/ansible to 755 changing mode of /usr/local/bin/ansible-doc to 755 changing mode of /usr/local/bin/ansible-galaxy to 755 changing mode of /usr/local/bin/ansible-connection to 755 changing mode of /usr/local/bin/ansible-console to 755 changing mode of /usr/local/bin/ansible-inventory to 755 changing mode of /usr/local/bin/ansible-vault to 755 changing mode of /usr/local/bin/ansible-playbook to 755 changing mode of /usr/local/bin/ansible-config to 755 changing mode of /usr/local/bin/ansible-pull to 755 Could not find .egg-info directory in install record for ansible Successfully installed ansible Cleaning up...

Looks good so far, but...

ansible --version

ERROR! Unexpected Exception, this is probably a bug: unsupported operand type(s) for %: 'bytes' and 'bytes' the full traceback was: Traceback (most recent call last): File "/usr/local/bin/ansible", line 85, in <module> mycli = getattr(__import__("ansible.cli.%s" % sub, fromlist=[myclass]), myclass) File "/usr/local/lib/python3.4/dist-packages/ansible/cli/__init__.py", line 38, in <module> from ansible.inventory.manager import InventoryManager File "/usr/local/lib/python3.4/dist-packages/ansible/inventory/manager.py", line 44, in <module> IGNORED_EXTS = [b'%s$' % to_bytes(re.escape(x)) for x in C.INVENTORY_IGNORE_EXTS] File "/usr/local/lib/python3.4/dist-packages/ansible/inventory/manager.py", line 44, in <listcomp> IGNORED_EXTS = [b'%s$' % to_bytes(re.escape(x)) for x in C.INVENTORY_IGNORE_EXTS] TypeError: unsupported operand type(s) for %: 'bytes' and 'bytes'