Well, the last part looks pretty water-tight with regards to an IOError, but `CalledProcessError` can occur with any `check_call`.

Are you suggesting to put an IOError try/except only until `virtualenv_zip.close()` and the remaining section with `CalledProcessError` try/except?