Added a new requirement ( pip install request ) and some logic to get it working, I won't blame you if you reject this PR but this is what made it work on my machine
Added an Exception handling to the offending urlretrieve() call for the issue #108https://github.com/espressif/arduino-esp32/issues/108
It's not really a fix but the failure message is much more elegant than the initial stack trace as it hints at the solution to the setup problem rather than confusing the user into Windows problems.