Je n'ai pas eu le temps de tester cela, mais quelque chose de ce genre devrait faire ce que vous voulez :
size = 12000 # thousandths of a point
temp_label = gtk.Label(my_label.get_text())
while temp_label.get_width() > my_label.get_width():
size -= 100
temp_label.set_attributes(pango.Attrlist().insert(pango.AttrSize(size))
my_label = temp_label
Cela suppose que vous forciez la largeur de my_label directement. Si my_label obtient sa largeur à partir de quelque chose d'autre (comme un conteneur parent), remplacez my_label.get_width() par la largeur maximale que vous souhaitez.
Essentiellement, il s'agit de réduire la taille de la police de 1/10e de point, encore et encore, jusqu'à ce que le texte s'adapte enfin. N'hésitez pas à ajuster la taille -= 100 à l'incrément que vous souhaitez (plus il est petit, plus il est lent mais plus il est fin).
Faites-moi savoir si ce n'est pas tout à fait ça et je pourrai l'affiner plus tard.