Overall I like this and don't see any reason not to accept it, so +1. I do have a couple comments/questions on the module API, though.

On Mon Feb 23 2015 at 12:45:28 PM Paul Moore <p.f.moore@gmail.com> wrote:
<SNIP>

``set_interpreter(archive, new_archive, interpreter=None)``
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Modifies the *archive*'s shebang line to contain the specified
interpreter, and writes the updated archive to *new_archive*.  If the
*interpreter* is ``None``, removes the shebang line.

Should new_archive default to None to allow for in-place editing?

-Brett