I decided to go ahead and build from source, because it says there in the documentation:
Cloning into 'ansible'...
remote: Counting objects: 265907, done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 265907 (delta 13), reused 2 (delta 2), pack-reused 265888
Receiving objects: 100% (265907/265907), 87.31 MiB | 769.00 KiB/s, done.
Resolving deltas: 100% (170839/170839), done.
[deniz@lemtmp]$ cd ansible/
[deniz@lemansible]$ ls
CHANGELOG.md Makefile bin lib test
CODING_GUIDELINES.md README.md contrib licenses ticket_stubs
CONTRIBUTING.md RELEASES.txt docs packaging tox.ini
COPYING ROADMAP.rst docsite_requirements.txt requirements.txt
MANIFEST.in VERSION examples setup.py
MODULE_GUIDELINES.md ansible-core-sitemap.xml hacking shippable.yml
[deniz@lemansible]$ source ./hacking/env-setup
running egg_info
creating lib/ansible.egg-info
writing lib/ansible.egg-info/PKG-INFO
writing dependency_links to lib/ansible.egg-info/dependency_links.txt
writing requirements to lib/ansible.egg-info/requires.txt
writing top-level names to lib/ansible.egg-info/top_level.txt
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest file 'lib/ansible.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'ticket_stubs'
no previously-included directories found matching 'hacking'
warning: no files found matching 'SYMLINK_CACHE.json'
writing manifest file 'lib/ansible.egg-info/SOURCES.txt'
Setting up Ansible to run out of checkout...
PATH=/private/tmp/ansible/bin:/private/tmp/ansible/test/runner:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/go/bin:/usr/local/Cellar/python3/3.6.1/bin/python3:/Users/deniz/Code/Go/bin:/usr/local/Cellar/go/1.8.3/libexec/bin
PYTHONPATH=/private/tmp/ansible/lib:
MANPATH=/private/tmp/ansible/docs/man:
Remember, you may wish to specify your host file with -i
Done!