Avoid bytes -> unicode conversion on Python 2.
This is important for installs into non-ASCII paths on Windows where the
conversion would otherwise raise an error. (Python 3 is the correct way
to fix the same issue by using Unicode everywhere.)
Tweaked after merge.