@@ -318,26 +318,30 @@ def get_exe_bytes(self):
318318# string compares seem wrong, but are what sysconfig.py itself uses
319319if self .target_version and self .target_version < cur_version :
320320if self .target_version < "2.4" :
321- bv = 6.0
321+ bv = ' 6.0'
322322elif self .target_version == "2.4" :
323- bv = 7.1
323+ bv = ' 7.1'
324324elif self .target_version == "2.5" :
325- bv = 8.0
325+ bv = ' 8.0'
326326elif self .target_version <= "3.2" :
327- bv = 9.0
327+ bv = ' 9.0'
328328elif self .target_version <= "3.4" :
329- bv = 10.0
329+ bv = ' 10.0'
330330else :
331- bv = 14.0
331+ bv = ' 14.0'
332332else :
333333# for current version - use authoritative check.
334334try :
335335from msvcrt import CRT_ASSEMBLY_VERSION
336336except ImportError :
337337# cross-building, so assume the latest version
338- bv = 14.0
338+ bv = ' 14.0'
339339else :
340- bv = float ('.' .join (CRT_ASSEMBLY_VERSION .split ('.' ,2 )[:2 ]))
340+ bv = '.' .join (CRT_ASSEMBLY_VERSION .split ('.' ,2 )[:2 ])
341+ if bv == '14.11' :
342+ # v141 and v140 are binary compatible,
343+ # so keep using the 14.0 stub.
344+ bv = '14.0'
341345
342346
343347# wininst-x.y.exe is in the same directory as this file
@@ -353,7 +357,7 @@ def get_exe_bytes(self):
353357else :
354358sfix = ''
355359
356- filename = os .path .join (directory ,"wininst-%.1f %s.exe" % (bv ,sfix ))
360+ filename = os .path .join (directory ,"wininst-%s %s.exe" % (bv ,sfix ))
357361f = open (filename ,"rb" )
358362try :
359363return f .read ()