I dont know why but changing the following line from:
sys.path[:] = (p for p in sys.path if p != "" and normalize(p) != cwd)
to use list comprehension like so:
sys.path[:] = [p for p in sys.path if p != "" and normalize(p) != cwd]
produces the desired behaviour.