os.execv does not work correctly here. It actually does a spawn followed by an exit when the spawned process completes, so the original ```pip.exe``` invocation is still running, and the handle to ```pip.exe``` remains open, preventing replacement.