Lawrence,
python -c "import petsc4py; petsc4py.init()" gives me no output, so I assume it's working?
btw I installed petsc4py using:
git clone .... && git checkout firedrake && sudo -E python setup.py install. 
So when I now run: 
pip show petsc4py 
gives me the following:
---
Name: petsc4py
Version: 3.5.1
Location: /usr/local/lib/python2.7/dist-packages
Requires:
Doing the latest pull of PyOP2, I ran:
make test
And got these errors:
cd test; py.test unit --backend=sequential
Traceback (most recent call last):
  File "/usr/local/bin/py.test", line 11, in <module>
    sys.exit(main())
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 18, in main
    config = _prepareconfig(args, plugins)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 62, in _prepareconfig
    pluginmanager=pluginmanager, args=args)
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 376, in __call__
    return self._docall(methods, kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 387, in _docall
    res = mc.execute()
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 288, in execute
    res = method(**kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/helpconfig.py", line 25, in pytest_cmdline_parse
    config = __multicall__.execute()
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 288, in execute
    res = method(**kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 617, in pytest_cmdline_parse
    self.parse(args)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 710, in parse
    self._preparse(args)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 690, in _preparse
    args=args, parser=self._parser)
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 376, in __call__
    return self._docall(methods, kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 387, in _docall
    res = mc.execute()
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 288, in execute
    res = method(**kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/capture.py", line 42, in pytest_load_initial_conftests
    return __multicall__.execute()
  File "/usr/lib/python2.7/dist-packages/_pytest/core.py", line 288, in execute
    res = method(**kwargs)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 673, in pytest_load_initial_conftests
    self._conftest.setinitial(args)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 486, in setinitial
    self._try_load_conftest(anchor)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 492, in _try_load_conftest
    self._path2confmods[None] = self.getconftestmodules(anchor)
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 511, in getconftestmodules
    clist.append(self.importconftest(conftestpath))
  File "/usr/lib/python2.7/dist-packages/_pytest/config.py", line 537, in importconftest
    self._conftestpath2mod[conftestpath] = mod = conftestpath.pyimport()
  File "/usr/lib/python2.7/dist-packages/py/_path/local.py", line 620, in pyimport
    __import__(modname)
  File "/home/justin/Software/firedrake-deps/PyOP2/test/conftest.py", line 40, in <module>
    from pyop2 import op2
  File "/home/justin/Software/firedrake-deps/PyOP2/pyop2/__init__.py", line 9, in <module>
    from op2 import *
  File "/home/justin/Software/firedrake-deps/PyOP2/pyop2/op2.py", line 39, in <module>
    import base
  File "/home/justin/Software/firedrake-deps/PyOP2/pyop2/base.py", line 56, in <module>
    from sparsity import build_sparsity
ImportError: No module named sparsity
make: *** [unit_sequential] Error 1
This is a different error now. Do you know what the problem is now?
Thanks,
Justin