The work-around-dots-in-bucket-names code tries to monkey-patch ssl.match_hostname(), which boto will later call into. However, that function doesn't exist until 3.2 according to the Python docs, so Boto is presumably using something else on lower Python versions, and the monkey patch gets caught trying to patch something that isn't there.
Apparently it also exists in 2.7.9, which is supposed to work. So maybe it should just refuse to install on 2.9 less than whenever the feature was backported.
The work-around-dots-in-bucket-names code tries to monkey-patch
ssl.match_hostname()
, which boto will later call into. However, that function doesn't exist until 3.2 according to the Python docs, so Boto is presumably using something else on lower Python versions, and the monkey patch gets caught trying to patch something that isn't there.