Nevow's setup.py (through setupcommon.py) imports nevow in order to learn its version number. This can be problematic since nevow isn't actually installed yet at the time that its setup.py is executed, so in some use cases it can end up importing "the wrong nevow".
To test this we would have to put a known-bad Nevow, possibly just one that raises RuntimeError?("lose") when you import it, on the path, and then make sure that building Nevow doesn't import it.
I think that the way Nevow's setup.py could learn the version number without importing nevow would be by parsing the nevow/_version.py file -- that's what we do in Tahoe -- http://allmydata.org/trac/tahoe/browser/setup.py?rev=2756#L72 -- so I would be happy to do that again since I know how to do it and I know that it works. PJE has also suggested to use execfile -- http://bugs.python.org/setuptools/issue20